Comment passer de l'objet au Service RESTful avec demande d'OBTENIR?
J'ai vu quelques messages dans stackoverflow disant "l'envoi de la liste des éléments dans la Méthode GET, n'est PAS autorisé. Il doit être accompli via la méthode POST seulement"
Mon code ressemble à
[OperationContract]
[WebGet(UriTemplate = "Employee/{emp}",RequestFormat=WebMessageFormat.Json)]
Employee GetEmpDetails(string emp);
et mon entrée d'objet json sera "{'id':1,'nom':'test',....}
Est-il un autre moyen de parvenir à cette question.
Grâce
- ce qui vous fait penser que vous obtiendrez une réponse différente?
- J'essaye aussi de passer à C# de l'objet de ma méthode Get
Vous devez vous connecter pour publier un commentaire.
Il est possible d'envoyer une liste d'éléments à OBTENIR, c'est juste que hors de la boîte que des valeurs primitives sont pris en charge. Les valeurs de chaîne fonctionne très bien, mais si vous voulez passer un objet complexe, vous devez créer un personnalisé
QueryStringConverter
. Le poste à http://blogs.msdn.com/b/carlosfigueira/archive/2011/08/09/wcf-extensibility-querystringconverter.aspx explique comment cela peut être fait.Si vous faites votre service RESTful, vous sera très probablement utiliser HTTP PUT pour Ajouter une méthode et HTTP POST pour la méthode de mise à Jour. Il est absolument ok pour passer à l'objet de ces méthodes, car l'objet sera de la partie de la requête HTTP du corps, ne fait pas partie de l'URI. URI est important pour les requêtes HTTP GET. Les requêtes HTTP GET devrait être seulement pour la récupération de données pas de modification de données.
Vous mélangez HTTP GET/POST/... demandes et de REPOS GET/POST/PUT/DELETE/...
Lorsque vous voulez demander quelque chose RESTfully - vous faire une requête GET. Dans votre cas, je pense qu'il devrait ressembler à
ou
Veuillez également noter que l'utilisation de minuscules dans l'URI est préférable.
Si vous avez besoin d'OBTENIR plusieurs critères, je pense qu'il pourrait ressembler à: