2013-06-12 4 views
9

Ho letto la specifica edn e voglio integrarla nella mia applicazione. Tuttavia, non so come trasferire le richieste di edn tra clojure e client. Inseriamo un'applicazione/edn del tipo di contenuto nell'intestazione della risposta e inviamo semplicemente la stringa di output prn?Esiste una sorta di risposta edn canonica che possiamo usare per l'anello?

+3

Forse questo progetto di fogus può darti un punto di partenza o una guida: [ring-edn] (https://github.com/fogus/ring-edn). –

+0

Vedere anche [anello-middleware-format] (https://github.com/ngrunwald/ring-middleware-format). – noahlz

risposta

3

Anche se non è ancora stato accettato da IANA (14 giugno 2013), il corretto tipo di contenuto è application/edn. Per fornire una stringa valida per l'oggetto clojure, utilizzare (pr-str obj). Per un servizio web, il metodo di codifica e decodifica dipende dal tuo framework web e dalle tue esigenze.

Pedestal supporta l'analisi di edn in una chiave :edn-params nella sua mappa richiesta tramite l'utilizzo dell'intercettore body-params. L'invio di oggetti clojure come edn viene gestito automaticamente se i vostri corpi di risposta non sono stringhe. Per la negoziazione del contenuto, vedere pedestal-content-negotiation.

Per il middleware ad anello, ring-edn analizza edn in una chiave :edn-params, ma non esegue alcuna modifica in uscita. ring-middleware-format fornisce l'analisi di una manciata di formati diversi nella chiave :body-params e ha una raccolta di middleware che può essere utile anche per le risposte. Ci sono una manciata di altri progetti di middleware come questo.

Problemi correlati