2017-03-21 2 views
2

j'ai un webservice qui peut prendre plusieurs types de contenu dans la demande-multiples types de contenu pour la demande en webservice

text/plain 
application/json 

Maintenant, le client peut envoyer l'un d'eux JSON ou texte. J'ai deux options disponibles sur le serveur

  1. Je peux créer apis séparés pour différents types de contenu
  2. Je peux analyser les données de requête et de vérifier si son JSON ou le texte?

Quelle est la meilleure approche ici Y a-t-il un modèle de conception adapté à ce besoin?

Remarque: La gestion préfère disposer d'une API pouvant prendre en charge plusieurs types de contenu.

+0

Bien que l'approche 1 soit préférable, dépend toujours de la manière dont vous déléguez la requête, en fonction des types de contenu aux API suivantes. –

+0

Considérez-vous accepter et/ou augmenter le nombre de réponses si vous l'avez trouvé utile? – jaco0646

Répondre

0

Je voudrais aller avec l'option 1 et avoir la logique commune placée dans une méthode séparée. De cette façon, vous laissez l'API vérifier et analyser les données d'entrée pour vous.

0

Dans http, vous utilisez l'en-tête "accept" pour définir le type de réponse attendu. Le serveur fournit le contenu tel que défini dans accept en-tête, la valeur par défaut si elle est pas défini ou 406 - « Pas acceptable » si le type ne sont pas pris en charge

https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

+1

Ce serait la bonne réponse si la question concernait un serveur avec plusieurs sorties. Au contraire, la question concerne un serveur avec plusieurs entrées. – jaco0646

1

Le client doit inclure un en-tête Content-Type indiquant le format de l'entité qu'ils envoient au serveur. Si le serveur ne prend pas en charge le format qu'un client a envoyé, la réponse attendue est 415 Unsupported Media Type.