Restet POST utilisant JSON
Comment puis-je mettre en œuvre Restlet fonction qui accepte de JSON post?
Et comment puis-je tester cette utilisation de curl?
Grâce
source d'informationauteur portoalet
Vous devez vous connecter pour publier un commentaire.
Avec Restlet 2, vous pouvez soit:
test de l'entité des médias-la compatibilité du type de
@Post acceptRepresentation(Representation entity)
:ou de l'utilisation
@Post
avec un ou deux paramètres:Voir ces liens:
(Avec Restlet 1, vous devez tester le type de l'entité.)
Que de la rédaction de cette réponse (2 ans après votre question), Restlet 2.1 nécessite une bonne dépendances remplies pour bien consommer et de répondre avec JSON. Le Point est, en dehors de "
Unsupported media type
" la réponse, il n'y a pas beaucoup d'indice sur ce qui se passe en interne.Pour activer JSON type de support, vous devez inclure la dépendance à
org.restlet.ext.jackson
; si vous avez besoin de l'appui de XML et JSON, vous devez inclure Jackson en PREMIER et ensuiteorg.restlet.ext.xstream
comme XStream est également capable de JSON représentations, mais la mise en œuvre est assez faible (comme décrit dans restlet docs, c'est l'ordre recommandé par restlet auteurs).Ensuite, vous n'avez pas besoin d'inclure le type de média dans l'annotation et vous avez juste besoin d'inclure la bonne
Content-Type
en-tête de votre demande curl, c'est à dire:login.json
contient le JSON demande.@Post
méthode annotée accepterLoginRequest
et de répondre avecLoginResponse
à la fois capable de XML et JSON types de médiasJ'espère que cette réponse vous aidera à quelqu'un de temps en temps. 🙂
L'exemple lié par Daniel Vassallo montre les données affichées à l'aide d'un formulaire. C'est comment envoyer JSON:
De tester avec curl:
Les simple quotes (") autour de la data dans la boucle de commande sont importantes.
Voici quelques mises à jour concernant cette vieille question. Restlet prend en charge les signatures de méthodes qui contient des haricots. Dans de tels cas, Restlet utilisera un régime enregistré d'convertisseur pour tenter de le convertir /remplir le reçu de la charge utile d'une fève instance. Cela est également vrai lors de l'envoi de contenu vers le client.
Voici l'exemple d'une méthode qui traite une demande
POST
:Le haricot peut simplement avoir la structure suivante:
À rendre le travail tel mécanisme, vous pouvez simplement ajouter l'extension Jackson (
org.restlet.ext.jackson
) dans votre classpath. Le correspondant convertisseur sera automatiquement enregistré sous le capot.La demande curl est simple et les données à envoyer doit être spécifiée
Espère que cela vous aide,
Thierry
Ici est un bon exemple de Restlet qui accepte de JSON via la POSTE:
Et un guide de base sur la façon de tester les services web RESTful avec cURL: