Quoi utiliser pour l'espace de REPOS, d'URI?
Que dois-je utiliser:
- /findby/nom de/{premier}_{dernier}
- /findby/nom de/{premier}-{dernier}
- /findby/nom de/{premier};{dernier}
- /findby/nom/prénom/{premier}//{dernier}
etc.
L'URI représente une Personne ressource avec 1 nom, mais j'ai besoin d'logiquement distincte de la première à la dernière pour identifier chaque. J'aime bien le dernier exemple parce que je peux le faire:
- /findby/nom/prénom/{premier}
- /findby/prénom//{dernier}
- /findby/nom/prénom/{premier}//{dernier}
OriginalL'auteur Droo | 2010-04-09
Vous devez vous connecter pour publier un commentaire.
Vous pouvez toujours juste accepter espaces 🙂 (querystring échappé que 20%)
Mais ma préférence est de simplement utiliser les tirets (-) ... regarde plus agréable dans l'URL. sauf si vous avez un besoin d'être en mesure de l'essentiel de la requête, auquel cas le dernier exemple est mieux comme vous l'avez remarqué
OriginalL'auteur Joel Martinez
Pourquoi ne pas utiliser
+
pour l'espace?Je suis à une perte: tirets, des inconvénients, des traits de soulignement %20... pourquoi ne pas simplement utiliser
+
? C'est la façon dont les espaces sont codés normalement dans les paramètres de requête. Oui, vous pouvez utiliser %20 trop mais pourquoi, semble laid.Je ferais
OriginalL'auteur Nas Banov
J'aime bien les utiliser "_" car il est le plus similaire de caractère à l'espace qui garde l'URL lisible.
Toutefois, l'Url que vous avez fourni ne semble pas vraiment Reposant. Une URL doit représenter une ressource, mais dans votre cas, il représente une requête de recherche. Donc, je voudrais faire quelque chose comme ceci:
Il ce cas, vous devez stocker le slug (
{first}_{last}
,{first}_{last}_(2)
) pour chaque enregistrement d'utilisateur. Une autre option pour ajouter l'ID, de sorte que vous n'avez pas à s'embêter avec les limaces:Et pour la recherche, vous pouvez utiliser la non-Sommeil Url:
Ces permettrait d'afficher une liste de résultats de recherche, tandis que les Url ci-dessus la page pour une personne en particulier.
Je ne pense pas qu'il soit utile de faire de la recherche Url Reposante, les utilisateurs les plus susceptibles de vouloir partager des liens à une certaine personne de la page et pas les pages de résultats de recherche. Comme pour les moteurs de recherche, d'éviter d'avoir le même contenu pour plusieurs URLs, et vous devriez même refuser l'indexation de vos pages de résultats de recherche dans robots.txt
OriginalL'auteur Leventix
Pour la recherche:
Des ressources chemins:
Si vous êtes en utilisant Ruby on Rails v3 en configuration standard, voici comment vous pouvez le faire.
Note de votre suggestion,
/findby/name/first/{first}/last/{last}
, n'est pas de tout repos. Il n'a pas les ressources de nom et il n'a pas les nommer de manière succincte.Je ne suis pas au courant qu'il y a une liste de contrôle qui définit ce que cela signifie d'être en RESTE.
Oui il y a des. Le RESTE de style architectural a été défini par l'application d'un ensemble de contraintes à la nulle style. Ici, nordsc.com/ext/classification_of_http_based_apis.html c'est une bonne table pour déterminer si un système est reposante ou pas.
OriginalL'auteur yfeldblum
Le plus sophistiqué, le choix devrait toujours et d'abord tenir compte de deux contraintes:
$
sera bien en javascript, les noms de variables et donc directement accessible dans le résultat de l'analyse, mais un client PHP va encore avoir à utiliser de plus en plus complexe (et potentiellement plus déroutant) de notation$userResult->{'$mostVisited'}->someProperty
... un coup de feu dans votre propre pied! Donc, pour ces deux (et un couple de d'autres environnements de programmation) soulignent semble que la seule option valable.Sinon je plutôt d'accord avec @yfeldblum réponse - j'avais distinctes entre un point de terminaison de recherche contre le réel unique de recherche de ressources. Se sent de plus de REPOS pour moi, mais plus important encore, les deux ont un importante différence de coût sur votre serveur d'api - de cette façon, vous pouvez facilement et distinct, c'est à dire payer plus les coûts ou les taux de restreindre la recherche d'un point d'extrémité doit jamais vous en avez besoin.
À être Pragmatique, par opposition à un "RESTafarian" mentionnés approche
/people/35-george-washington
pourrait (et devrait à mon humble avis) en fait, répondre à l'id, donc si vous voulez un nom, urlsafe-pour-nuls-lien de la liste de référence, comme/people/35_george_washington
. D'autres idées pourraient être/people/35/#GeorgeWashington
(brisant ainsi des tonnes de Rfc) ou/people/35_GeorgeWashington
- l'API ne serait pas de soins.OriginalL'auteur Philzen