Je travaille sur une API Lisp utilisant RESTAS, Hunchentoot et CL-JSON. J'ai un itinéraire défini comme ceci:Comment gérer les post-données brutes dans Hunchentoot
(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)
))
Maintenant, j'utilise Postman pour envoyer des requêtes HTTP POST avec quelques exemples de données JSON dans le corps de la demande qui ressemble à ceci:
{
"first_name": "John",
"last_name": "Doe",
"login": "jdoe",
"password": "lalala",
"email": "[email protected]",
"organization": "IETF"
}
Le corps de la demande passe clairement à travers, comme je suis capable de le sortir à l'écran, mais la partie decode-json
me laisse avec une erreur de 500 serveurs. J'ai essayé quelques combinaisons qui semblaient raisonnables, mais je ne pouvais pas analyser JSON. Idéalement, je voudrais l'analyser en plist
, alist
ou une table de hachage. Toute aide grandement appréciée.
Que voulez-vous réellement décoder? Vous pourriez en parler à Lisp. –