Question

Au travail ici, nous avons une boîte servant des flux XML aux partenaires commerciaux. Les demandes pour nos flux sont personnalisées en spécifiant des paramètres et des valeurs de chaîne de requête. Certains de ces paramètres sont obligatoires, mais beaucoup ne le sont pas.

Par exemple, nous demandons à toutes les demandes de spécifier un GUID pour identifier le partenaire, et une demande peut porter sur un "obtenir le dernier". ou " recherche " action:

Pour une recherche: http: //services.null .ext /? id = [GUID] & amp; q = [Rechercher mots-clés]
Dernières données de la catégorie: http: //services.null. ext /? id = [GUID] & category = [ID]

Il est facile de structurer un schéma d'URL RESTful pour ces paramètres:

Recherche: http: //services.null.ext/ [GUID] / search / [Keywords]
Dernières: http: //services.null.ext/ [ GUID] / latest / category / [ID]

Mais comment devrions-nous gérer la dizaine de paramètres optionnels dont nous disposons? Beaucoup d'entre eux sont exclusivement exclusifs, et beaucoup sont nécessaires dans les combinaisons. Très rapidement, le nombre de chemins possibles devient extrêmement complexe.

Quelles sont les pratiques recommandées pour mapper des URL contenant des chaînes de requête complexes vers / REST / FUL / path (Plus convivial)?

(Je m'intéresse aux conventions, schémas, modèles, etc. Aucune technologie spécifique pour implémenter la réécriture d'URL sur un serveur Web ou dans un cadre.)

Était-ce utile?

La solution

Vous devez laisser des paramètres de requête facultatifs dans la chaîne de requête. Il n'y a pas de " règle " dans REST, il ne peut y avoir de chaîne de requête. En fait, c'est tout le contraire. La chaîne de requête doit être utilisée pour modifier la vue de la représentation que vous transférez au client.

S'en tenir à "Entités avec un État représentable" pour vos composants de chemin d'URL. La catégorie semble correcte, mais qu'est-ce que vous alimentez avec XML? Des postes? Articles du catalogue? Les pièces?

Je pense qu'une taxonomie REST bien meilleure ressemblerait à ceci (en supposant que le contenu de votre flux XML soit un "article"):

Si vous ne pensez pas aux entités que vous représentez lors de la construction de votre structure REST, vous ne le faites pas. Tu fais autre chose.

Jetez un coup d'œil à cet article sur les meilleures pratiques REST . C'est vieux, mais ça peut aider.

Autres conseils

Paramètres avec des valeurs? Une option est la chaîne de requête. Son utilisation n'est pas intrinsèquement non reposante. Une autre option consiste à utiliser le point-virgule présenté par Tim Berners-Lee . ils pourraient tout simplement tenir la facture, permettant ainsi à l'URL de donner un sens, sans avoir des chemins massivement longs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top