Sur ma page Web, si je souhaite afficher des listes déroulantes dynamiques (par exemple, les noms de villes en fonction du pays sélectionné), je peux le faire en utilisant AJAX. Mais je peux aussi le faire en utilisant un appel REST. Alors, que dois-je utiliser?
Mon problème est que je ne comprends vraiment pas la différence entre REST et toute autre demande de navigateur HTTP (alias un formulaire soumis). J'ai regardé les définitions formelles de REST et il semble identique à une requête HTTP. En quoi REST est-il intrinsèquement différent d'AJAX?
Réponses:
Um non. Ces deux sont complètement orthogonaux. Si vous souhaitez mettre à jour votre page avec les données que vous devez obtenir d'un serveur, vous le ferez en utilisant AJAX. Il n'y a pas d'autre moyen. Et cet appel AJAX peut utiliser REST, ou autre chose.
Un appel REST est toujours une requête HTTP. Bien qu'il puisse être utilisé pour gérer les appels réguliers du navigateur (comme les soumissions de formulaires) et renvoyer des pages HTML complètes, il est généralement utilisé pour gérer les appels d'API qui renvoient uniquement des données (généralement au format JSON).
Parce que REST est un style spécifique d'utilisation de HTTP, sans doute en l'utilisant tel qu'il était initialement destiné à être utilisé, mais que la plupart des gens n'ont pas "obtenu" et a donc été rarement utilisé pendant près de 2 décennies.
Plus précisément, REST signifie encoder l'entité que vous souhaitez récupérer ou manipuler dans l'URL elle-même (généralement via un ID) et encoder l'action que vous souhaitez effectuer dessus dans la méthode HTTP utilisée (GET pour la récupération, POST pour la modification, PUT pour la création , SUPPRIMER pour supprimer).
la source
Eh bien, je pense que vous devez d'abord comprendre que AJAX et REST ne sont pas vraiment des alternatives à votre cas d'utilisation. AJAX signifie javascript asynchrone et XML, donc si vous utilisez javascript pour charger des données une fois la demande du navigateur terminée, vous faites AJAX.
REST, d'autre part, représente le transfert d'état représentatif qui, comme l'a souligné Stefan Billet, utilise des requêtes HTTP pour transférer des données. Donc, REST est en fait une façon de faire AJAX avec. SOAP en serait un autre, mais c'est hors sujet pour votre question. Votre question devrait donc plutôt être: "Quelle technologie est la meilleure pour mon cas d'utilisation?"
Dans ce cas, je recommanderais de réfléchir à la quantité de données utilisées dans vos listes déroulantes. Si vous n'avez que peu d'éléments, vous pouvez les avoir tous dans votre page et utiliser simplement javascript pour afficher ceux qui conviennent. Une deuxième option pourrait être d'utiliser un appel REST avec JSON comme représentation car il est facile à utiliser avec javascript et très léger, ce qui bien sûr signifierait également faire AJAX.
la source
REST utilise les verbes HTTP GET, POST, PUT, DELETE pour obtenir, insérer, mettre à jour et supprimer respectivement des ressources sur un serveur. Par exemple GET avec url: contrôleur / client / {id}
L'alternative consiste à ajouter des méthodes à un contrôleur telles que GetCustomerById (id), InsertCustomer (client), UpdateCustomer (client), DeleteCustomer (client). C'est ce que l'on appelle une approche RPC. Par exemple, GET avec url: controller / GetCustomerById? Id = {id}
L'une des différences est qu'une API REST est un peu prévisible. Si vous connaissez REST et que vous connaissez le nom de la ressource que vous souhaitez (par exemple Client), vous pouvez immédiatement vous connecter et utiliser le contrôleur REST avec les verbes standard.
Avec une approche RPC, vous devez savoir quelles méthodes sont sur votre contrôleur, quel type d'arguments elles prennent, etc. Ces signatures peuvent varier d'un contrôleur à l'autre, d'une application à l'autre.
AJAX, d'autre part, n'est qu'un moyen asynchrone de placer les demandes susmentionnées, que ce soit en tant qu'appel REST ou appel RPC.
la source