Maybaygiare.org

Blog Network

7 méthodes HTTP assertibles que chaque développeur Web devrait connaître et comment les tester

Vous êtes-vous déjà demandé quelle était la différence entre les requêtes GET et POST, ou quand utiliser PUT ? Tu n’es pas seule. Avoir une compréhension de base des différentes méthodes HTTP, ou verbes, un APIsupports est une connaissance utile lors de l’exploration et du test des API.

Dans cet article, je vais discuter de la façon dont chaque méthode HTTP est utilisée et comment les intégrer dans vos tests API.

Méthodes HTTP

  • GET
  • POST
  • PUT
  • HEADDELETE.
  • PATCH
  • OPTIONS

GET

sont les méthodes les plus courantes et les plus utilisées dans les API et les sites Web. En termes simples, la méthode GET est utilisée pour récupérer les données d’aserver à la ressource spécifiée. Par exemple, supposons que vous ayez un point de terminaison /users. Faire une demande GET à ce point de terminaison devrait renvoyer une liste de tous les utilisateurs disponibles.

Comme une requête GET ne demande que des données et ne modifie aucune ressource, elle est considérée comme une méthode sûre et idempotente.

Tester une API avec des requêtes GET

Lorsque vous créez des tests pour une API, la méthode GET sera probablement le type de demande le plus fréquent effectué par les consommateurs du service, il est donc important de vérifier chaque point de terminaison connu avec une requête GET.

Au niveau de base, ces éléments doivent être validés :

  • Vérifiez qu’une requête GET valide renvoie un code d’état 200.
  • Assurez-vous qu’une requête GET à une ressource spécifique renvoie les données correctes. Par exemple, GET /users renvoie une liste d’utilisateurs.

GET est souvent la méthode par défaut dans les clients HTTP, donc la création de tests pour ces ressources doit être simple avec n’importe quel outil de votre choix.

POST

Dans les services Web, les requêtes POST sont utilisées pour envoyer des données à l’APIserver pour créer ou udpate une ressource. Les données envoyées au serveur sont stockées dans le corps de la requête HTTP.

L’exemple le plus simple est un formulaire de contact sur un site Web. Lorsque vous remplissez les entrées dans un formulaire et appuyez sur Envoyer, ces données sont placées dans le corps de réponse de la demande et envoyées au serveur. Cela peut être des paramètres JSON, XML ou de requête (il existe de nombreux autres formats, mais ce sont les plus courants).

Il convient de noter qu’une requête POST n’est pas idempotente. Itmute les données sur le serveur principal (en créant ou en mettant à jour aresource), par opposition à une requête GET qui ne modifie aucune donnée. Voici une excellente explication de l’idempotence.

Tester une API avec des requêtes POST

La deuxième méthode HTTP la plus courante que vous rencontrerez dans votre test d’API est POST. Comme mentionné ci-dessus, les requêtes POST sont utilisées pourenvoyer des données au serveur API et créer ou mettre à jour une ressource. Puisque les demandes POST modifient les données, il est important d’avoir des tests API pour toutes vos méthodes POST.

Voici quelques conseils pour tester les requêtes POST :

  • Créez une ressource avec une requête POST et assurez-vous qu’un code d’état 200 est renvoyé.
  • Ensuite, faites une requête GET pour cette ressource et assurez-vous que les données ont été enregistrées correctement.
  • Ajoutez des tests qui garantissent que les requêtes POST échouent avec des données incorrectes ou mal formatées.

Pour plus d’idées sur les scénarios de test d’API courants, consultez cet article.

PUT

Simlar to POST, PUTles requêtes sont utilisées pour envoyer des données à l’API toupdate ou créer une ressource. La différence est que les requêtes de sortie sont idempotentes. C’est-à-dire que l’appel de la même requête PUT plusieurs fois produira toujours le même résultat. En revanche, l’appel répété d’une requête POST a pour effet secondaire de créer plusieurs fois la même ressource.

Généralement, lorsqu’une requête PUT crée une ressource, le serveur répond à un 201Created), et si la requête modifie la ressource existante, le serveur renvoie un 200OK) ou 204NoContent).

Tester une API avec des requêtes PUT

Tester une API PUT les méthodes sont très similaires aux tests POSTrequests. Mais maintenant que nous connaissons la différence entre les deux (idempotence), nous pouvons créer des tests API pour confirmer ce comportement.

Vérifiez ces choses lors du test des requêtes PUT :

  • Appeler à plusieurs reprises une requête PUT renvoie toujours le même résultat (idempotent).
  • Le code d’état approprié est renvoyé lors de la création et de la mise à jour d’une ressource (par exemple, 201 ou 200204).
  • Après la mise à jour d’une ressource avec une requête PUT, une requête GET pourquelle ressource doit renvoyer les données correctes.
  • PUTles requêtes doivent échouer si des données non valides sont fournies dans therequest nothing rien ne doit être mis à jour.

PATCH

Une requête PATCH est l’une des méthodes HTTP les moins connues, mais je l’inclus aussi haut dans la liste car elle est similaire à POST andPUT. La différence avec PATCH est que vous n’appliquez que des modifications partielles à la ressource.

La différence entre PATCH et PUT est que la demande de PATCH n’est pas idempotente (comme une demande POST).

Pour développer une modification partielle, supposons que votre API ait un point de terminaison /users/{{userid}} et qu’un utilisateur ait un nom d’utilisateur. Avec la demande aPATCH, il vous suffit peut-être d’envoyer le nom d’utilisateur mis à jour dans le corps de la demande – par opposition à POST et PUT qui nécessitent l’entité fulluser.

Tester une API avec des demandes de CORRECTIFS

Étant donné que la méthode PATCH est si simple à PUBLIER et à METTRE, de nombreuses techniques de test similaires s’appliquent. Il est toujours important de valider le comportement de tous les points de terminaison d’API qui acceptent cette méthode.

Ce qu’il faut rechercher lors du test des demandes de CORRECTIFS :

  • Une requête PATCH réussie doit renvoyer un code d’état 2xx.
  • PATCHles requêtes doivent échouer si des données non valides sont fournies dans therequest nothing rien ne doit être mis à jour.

La sémantique des demandes de CORRECTIFS dépendra en grande partie de l’API spécifique que vous testez.

DELETE

La méthode DELETE est exactement telle qu’elle sonne: supprimez la ressource à l’URL spécifiée. Cette méthode est l’une des plus courantes chez RESTfulAPIs, il est donc bon de savoir comment cela fonctionne.

Tester une API avec des requêtes de suppression

DELETEles requêtes doivent être fortement testées car elles ont généralement supprimé des données d’une base de données. Soyez prudent lorsque vous testez des méthodes de SUPPRESSION, assurez-vous que vous utilisez les informations d’identification correctes et que vous ne testez pas avec les données realuser.

Un cas de test typique pour une demande de SUPPRESSION ressemblerait à ceci:

  1. Créez un nouvel utilisateur avec un POSTdemande à /users
  2. Avec l’ID utilisateur renvoyé par le POST, créez un DELETErequête à /users/{{userid}}
  3. Une requête GET suivante à /users/{{userid}} doit renvoyer un code d’état 404 introuvable.

De plus, l’envoi d’une requête de SUPPRESSION à une ressource inconnue devrait comporter un code d’état non-200.

HEAD

La méthode HEAD est presque identique à GET, sauf sans le corps de la réponse. En d’autres termes, si GET /users renvoie une liste d’utilisateurs, alors HEAD /users fera la même demande mais ne récupérera pas la liste des utilisateurs.

Les requêtes HEAD sont utiles pour vérifier ce qu’une requête GET retournera avant de faire une requête GET actually comme avant de télécharger un fichier volumineux ou un responsebody. En savoir plus sur les demandes HEAD sur MDN.

Il convient de souligner que tous les points de terminaison prenant en charge GETwill ne prennent pas en charge HEAD – cela dépend entièrement de l’API que vous testez.

Tester une API avec des requêtes HEAD

Effectuer des requêtes API avec des méthodes HEAD est en fait un moyen efficace de simplement vérifier qu’une ressource est disponible. Il est bon pratique d’avoir un test pour les demandes HEAD partout où vous avez un test pour les demandes GET (tant que l’API le prend en charge).

Vérifiez ces éléments lors du test d’une API avec des requêtes HEAD:

  • Vérifier etles en-têtes Checkhttp renvoyés à partir d’une requête HEAD
  • Faire des assertions contre le code d’état des requêtes HEAD
  • Les requêtes de test avec divers paramètres de requête r pour assurer les APIresponds

Un autre cas utile pour HEADrequestsisAPI smoke testing – faire une requête HEAD contre chaque point de terminaison de l’API pour s’assurer qu’ils disponible.

OPTIONS

Enfin et surtout, nous avons des requêtes OPTIONS. Les demandes d’OPTIONS sont l’une de mes favorites, mais pas aussi largement utilisée que les autres méthodes Httpméthodes. En un mot, une demande d’OPTIONS doit renvoyer des données décrivant les autres méthodes et opérations prises en charge par le serveur sur l’URL donnée.

Les demandes d’OPTIONS sont plus définies et utilisées que les autres, ce qui en fait un bon candidat pour tester les erreurs d’API fatales. Si anAPI n’attend pas de demande d’OPTIONS, il est bon de placer une caséine de test qui vérifie le comportement défaillant.

Tester une API avec des requêtes d’OPTIONS

Tester une requête OPTIONS dépend du service Web; que ce soit ou non, il le supporte et ce qui est censé revenir définira comment vous devriez le tester.

Comment valider un point de terminaison à l’aide d’OPTIONS :

  • Principalement, vérifiez les en-têtes de réponse et le code d’état de la requête
  • Testez les points de terminaison qui ne prennent pas en charge les OPTIONS et assurez-vous qu’ils échouent correctement

Plus de ressources

Ce que j’ai discuté ci-dessus n’est qu’un point de départ pour explorer les méthodes toHTTP et tester diverses ressources d’une API. Cela suppose également un cas principalement idéal – dans le monde réel, les API ne sont pas aussi structurées que les exemples ci-dessus. Cela rend le test de diverses méthodes par rapport à un moyen efficace d’APIan pour trouver des bogues inattendus.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.