REST, comment gérer les paramètres de requête lorsqu'ils sont mis en ressource ?
Question
J'ai un service de données REST dans lequel je souhaite permettre aux utilisateurs de créer de nouveaux éléments avec HTTP PUT en utilisant différents formats comme json, xml, csv.Je ne sais pas comment gérer au mieux la spécification de format dans l'URL :
PUT /ressource/ID/json
PUT /ressource/ID/xml
ou
PUT /ressource/ID?format=json
PUT /ressource/ID?format=xml
Alors, quelle est la meilleure façon de spécifier un indicateur de format ?
Si je spécifie le format avec un paramètre de requête et que je souhaite effectuer une PUT
comment puis-je faire ça avec curl ?
curl -T test/data.json -d "format=json" http://localhost:5000/resource/33
ne marche pas.
curl -T test/data.json http://localhost:5000/update?format=json
fonctionne, mais je préfère laisser curl créer les paramètres de requête au lieu de les ajouter moi-même.
La solution
Un principe général des services Web RESTful est d'utiliser les fonctionnalités intégrées à HTTP, le cas échéant.Dans ce cas, vous pouvez indiquer le format du contenu de votre requête PUT en définissant le Type de contenu en-tête vers application/json ou application/xml.