Как работать с необработанными данными в Hunchentoot

Я работаю над Lisp API, используя RESTAS, Hunchentoot и CL-JSON. У меня есть маршрут, определенный следующим образом:

(define-route user/register ("/user/register" :method :post)
  (let* ((raw-data (hunchentoot:raw-post-data :force-text t))
     (params (json:decode-json-from-string)))
    (format t "List of parameters: ~a~%" params)
      ))

Теперь я использую Postman для отправки запросов HTTP POST с некоторыми примерами данных JSON в теле запроса, которое выглядит следующим образом:

{
    "first_name": "John",
    "last_name": "Doe",
    "login": "jdoe",
    "password": "lalala",
    "email": "jdoe@ietf.org",
    "organization": "IETF"
}

Тело запроса четко проходит, так как я могу вывести его на экран, но decode-json часть оставляет меня с ошибкой 500 сервера. Я пробовал некоторые комбинации, которые казались разумными, но я не смог разобрать этот JSON. В идеале я бы хотел разобрать plist, alist или хэш-таблица. Любая помощь с благодарностью.

1 ответ

Решение

Используйте (restas:debug-mode-on) для отладки.

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