Есть ли какой-то канонический ответ 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 ключ, и имеет набор промежуточных программ, которые также могут быть полезны для ответов. Есть несколько других кольцевых промежуточных проектов, подобных этому.

Другие вопросы по тегам