Есть ли какой-то канонический ответ edn, который мы можем использовать для кольца?
Я читал спецификацию edn и хочу интегрировать ее в свое приложение. Однако я не знаю, как передавать запросы edn между clojure и клиентом. Мы помещаем приложение типа контента /edn в заголовок ответа и просто отправляем строку вывода prn?
1 ответ
Хотя это еще не было принято IANA (14 июня 2013 г.), правильный тип контента: application/edn
, Чтобы обеспечить корректный вывод строки вашего объекта clojure, используйте (pr-str obj)
, Для веб-службы метод кодирования и декодирования зависит от вашей веб-платформы и ваших потребностей.
Пьедестал поддерживает разбор EDN в :edn-params
ключ на карте запроса с помощью его body-params
перехватчик. Отправка объектов clojure как edn обрабатывается автоматически, если ваши тела ответов не являются строками. Для согласования содержимого см. Pedestal-content -gotiation.
Для кольцевого промежуточного программного обеспечения ring-edn анализирует edn в :edn-params
ключ, но не делает никаких исходящих изменений. https://github.com/ngrunwald/ring-middleware-format обеспечивает разбор нескольких различных форматов в :body-params
ключ, и имеет набор промежуточных программ, которые также могут быть полезны для ответов. Есть несколько других кольцевых промежуточных проектов, подобных этому.