2009-03-10 8 views
0

J'ai conçu une classe qui crée du code XML pour un POST afin d'appeler un API à une API tierce. La classe a des méthodes d'aide; Un pour former le HttpWebRequest et ensuite un pour l'envoyer. Ma question est la suivante:Création de classe avec APIRequest et réponse

La réponse (que je vais finalement insérer dans un XMLReader et l'analyser pour obtenir les valeurs) doit-elle être retournée en tant que HttpWebResponse, XMLReader ou quoi? Et cette réponse doit-elle être renvoyée par la méthode Send HttpWebRequest que j'ai ou simplement définie sur une propriété de ma classe APIRequest.cs qui effectue l'envoi? Ou devrais-je transmettre HttpWebResponse ou XMLReader (si je décide d'envoyer d'abord cette réponse dans un lecteur) à une classe entièrement différente appelée APIMethodResponse qui contient les valeurs qui reviennent dans la réponse?

Je pense à SOLID et à la conception de classe de base ici. Je ne suis pas sûr de la façon de le faire en termes de gestion de la réponse qui revient de l'appel/requête de méthode API que je fais avec ma classe APIRequest.cs.

Remarque: La classe APIRequest.cs est vraiment plus spécifique, par exemple UpdateCustomerRequest.cs, car j'appelle la méthode API UpdateCustomer par exemple. Le code XML que je crée pour le POST est créé via une méthode qui crée les noeuds et les données nécessaires à l'envoi en tant que POST pour l'appel de la méthode UdpateCustomer

Répondre

1

Vous ne devez pas renvoyer HttpWebResponse. Ceci est interne à votre infrastructure d'appel d'API et n'est pas pertinent pour l'appelant. Je devrais soit rester basique et retourner le XML brut (qui peut ensuite être analysé de plusieurs manières en fonction des besoins de l'appelant), soit aller jusqu'au bout, l'analyser et retourner les paramètres de valeur de retour/out à l'intérieur. Gardez à l'esprit que l'appelant voudrait, autant que possible, appeler des méthodes API et obtenir les valeurs de retour sans traiter le câblage concerné.

1

Retourne un XmlReader. Vous pouvez faire n'importe quoi avec un XmlReader - charger dans un XmlDocument, l'utiliser comme entrée pour XslCompiledTransform, etc. C'est le dénominateur le moins commun des API XML.

BTW, avez-vous déjà créer le HttpWebRequest, mais ne l'envoyez pas?

Questions connexes