WCF Rest paramètres liés à la complexité de types
La configuration d'un service WCF qui utilise le webHttpBinding... je peux retourner types complexes à partir de la méthode XML ok. Comment dois-je prendre dans un type complexe comme un paramètre?
[ServiceContract(Name = "TestService", Namespace = "http://www.test.com/2009/11")]
public interface ITestService
{
[OperationContract]
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "/Person/{customerAccountNumber}, {userName}, {password}, {PersonCriteria}")]
Person SubmitPersonCriteria(string customerAccountNumber,
string userName,
string password,
PersonCriteria details);
}
Depuis le UriTemplate permet uniquement de chaînes, quelle est la meilleure pratique? L'idée est que le client app poster une demande pour le service, comme les critères de recherche pour une personne. Le service va répondre à l'objet contenant les données au format XML.
OriginalL'auteur Excelsior | 2009-11-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez poster des types complexes à l'aide de repos.
La mise en œuvre ressemble à ceci:
Vous pouvez appeler une méthode à partir d'un client WPF:
Ou vous pouvez appeler avec un HttpWebRequest ainsi, l'écriture de type complexe à un tableau d'octets qui nous le faire à partir d'un client mobile.
Vos deux liens sont rompus dans votre post, donc je ne suis pas sûr que je peux tout à fait dire ce que vous faites. Vous dites que vous ne pouvez pas poster de types complexes à l'aide de REPOS?
Comment le type complexe être affichés en utilisant le Repos? Dans le bool DeleteCustomerOrder méthode, lorsque le poste est soumis comment fonctionne le service obtenir le CustomerSpecialOrder objet passé?
Mes deux liens fonctionnent, oui c'est ce que je dis -->paramètres<-- ne peut pas être un complexe/données personnalisées type de contrat.
Eh bien, je suis en train de travailler sur un projet où nous passons des types complexes de services RESTful à l'aide de WebInvoke et POST. Nous avons un service qui implémente l'OperationContract ci-dessus et nous l'appelons à l'aide de WPF clients et les clients mobiles qui post à l'aide d'un HttpWebRequest. Je suis d'accord avec Scott Seely en réponse à votre deuxième lien. Les types complexes sont publiés et les Uri sont utilisés pour passer des simples chaînes de caractères.
OriginalL'auteur Brett Bim
Vos options:
Que je recommanderais à l'ancienne, il se sent plus calme et moins hacky. Le POSTE serait à soumettre une requête, et en réponse, vous obtenez un queryId, quelque chose qui a trait à ce que vous avez soumis.
Selon le RESTE des idées, vous pouvez alors à obtenir que ID pour obtenir les résultats de la requête.
OriginalL'auteur Cheeso
Vous pouvez passer une chaîne JSON ou XML format des données en entrée du corps dans le RESTE d'appel de service et de parler de la même chose dans la définition de contrat de service. Ensuite, il vous permettra de passer un objet comme une entrée dans le REPOS de l'appel de service.
OriginalL'auteur Swarup Kumar Batabyal