Je pense que c'est une question classique et typique, mais je n'ai pas trouvé sa réponse.
À ma connaissance, la méthode Voici un exemple. J'utilise SoaPui 5.5.0, c'est le lien de l'API: https://reqres.in/api / utilisateurs / 1 p> Lorsque j'utilise obtenir une méthode, je reçois ceci: p> et en modifiant uniquement la méthode pour poster, je reçois Ceci: p> (l'identifiant et la date changent à chaque fois)
Comme décrit dans ce lien https://reqres.in/ que cela crée une instance et que nous pouvons ajouter des paramètres. . P> Mais, peut-on expliquer comment il est techniquement possible d'avoir un comportement différent avec des méthodes différentes sur la même URL? P> P>
3 Réponses :
dans des API reposantes, les verbes ont une signification très importante. P>
Dans votre cas, changez le verbe de obtenir code>: récupérer des données
POST CODE>: Créez une nouvelle entité avec le corps de la demande
mettre code>: remplacer une entité avec le corps de la demande
Patch CODE>: Mettez à jour certaines propriétés d'une entité avec le corps de la demande. ALIAS. Mise à jour partielle p>
Obtenir code> sur POST code> a pour effet de créer une nouvelle entité avec ID 1 code>. C'est pourquoi vous obtenez une réponse avec l'identifiant nouvellement créé et un crééa code> horodatage. P>
Mais dans le lien, j'ai le paramètre 1 (pour l'ID), alors je reçois une réponse avec un autre identifiant. Et ce que je n'ai toujours pas compris, c'est comment la même API peut avoir des méthodes différentes. Ce que je sais, c'est que l'API a une méthode. (Je découvre toujours le monde de l'API reposant) Je ne peux même pas trouver un exemple de développement d'une seule API avec plus d'une méthode
En repos, l'URL est utilisée pour faire référence à une ressource et le verbe HTTP dicte l'opération que vous souhaitez effectuer sur cette ressource. Donc, 1 URL peut représenter plusieurs méthodes de serveur.
Comment est-il techniquement possible d'avoir un comportement différent avec Différentes méthodes sur la même URL p> blockQuote>
Pour la possibilité technique, vous pouvez regarder le Réponse à cette a >. p>
Vous pouvez avoir un contrôleur accessible sur une seule URL, mais peut contacté sur quatre,
obtenir code>,mettre code>,post code>, < Code> Supprimer code>. Pour ce faire, Spring fournit les annotations@getMapping code>,@postmapping code>,@PutMapping code>,@DeleMapping code>. p>Toutes les demandes sont envoyées à la même URL et à la même source ouvre la méthode à appeler sur le verbe. P>
À ma connaissance, la méthode postale est utilisée pour envoyer des données au serveur avec le paramètre de demande dans le corps du message pour la sécuriser. Et obtenir la méthode consiste à extraire des données avec des paramètres de l'URL. p>
Cela vous empêche probablement de vous rendre. p>
Les demandes HTTP sont des messages; Chaque message commence par un Demande-Line P>
target-resource.GET() target-resource.POST(message-body)
Si vous connaissez le motif MVC, je peux l'expliquer très facile.
post https://reqres.in/api/users code> est un contrôleur;Obtenez https://reqres.in/api/user code> est un autre contrôleur. Ce sont deux contrôleurs différents, eventHough ils ont partagé la même adresse. Habituellement,obtenir https://reqres.in/api/users code> est pour l'index (tous les enregistrements) etobtenez https://reqres.in/api/user/ < / code> est de montrer un enregistrement. Les deux sont deux contrôleurs différents.