soap vs rest difference
Ce didacticiel explique les services SOAP et REST sur Parasoft. Vous apprendrez Stateless vs Stateful, la sécurité de SOAP sur REST, pourquoi REST est plus rapide que SOAP, etc.:
Nous avons également couvert des exemples de requêtes et la réponse de SOAP et REST au format XML et JSON respectivement.
Vers la fin de ce didacticiel, vous serez en mesure d'écrire vos programmes JSON qui ont été expliqués avec différents exemples de programmes ainsi que le concept JSON Path ou JSON Evaluator et Document Keys de Parasoft.
=> Découvrez la série complète de tutoriels SOATest ici .
Ce didacticiel décrit également les différents verbes utilisés dans Parasoft ou SOAtest Automation Tool ainsi que les exemples de programmation et leur code de réponse HTTP et leurs utilisations respectives. Vous serez en mesure de comprendre comment construire vos suites SOAtest d'une meilleure manière, ce qui sera couvert en détail dans notre prochain tutoriel.
Vous pouvez également essayer de répondre aux questions répertoriées en bas une fois que vous avez suivi ce didacticiel.
Ce que vous apprendrez:
Qu'est-ce que le service SOAP?
SOAP signifie Simple Object Access Protocol . Les protocoles ne sont rien d'autre qu'un ensemble de règles que vous définissez pour un test. Il s'agit d'un protocole «plein d'état», contrairement à REST qui implique l'utilisation de WSDL (Web Services Description Language) pour décrire les services Web.
Toutes les requêtes et réponses en SOAP sont réalisées en XML (Extensible Markup Language). SOAP est plus sécurisé que son homologue. Il ne fournit aucun traitement indépendant pour différentes méthodes et c'est la raison pour laquelle il est appelé protocole «plein d'état».
Pourquoi SOAP est-il plus sécurisé?
Bien que SOAP et REST prennent tous deux en charge SSL (Secure Socket Layer) pour la protection des données, tout en effectuant la demande, SOAP prend en charge la sécurité des services Web (également appelée WS-Security ou WSS) pour la protection au niveau de l'entreprise qui est absente des services REST. Web Services Security (WS-Security, WSS) est une extension de SOAP pour appliquer la sécurité aux services Web.
Un exemple de corps de requête de SOAP
Parasoft TUP true
Nous avons un XML qui sera utilisé comme charge utile pour former le corps de requête du SOAP. Tout langage XML comprend la version qui doit être définie au-dessus du script. Vous n'avez pas à vous soucier des balises, car tous les fichiers XML vous permettent de créer vos balises, contrairement au HTML.
Si vous essayez de générer les jetons via une requête SOAP, il vous suffit de fournir les paramètres nécessaires tels que l'ID utilisateur et le mot de passe ainsi que l'URL que vous frappez dans le corps de la requête ou le XML sous vos balises personnalisées.
Ci-dessous, la capture d'écran de la visionneuse de trafic du Parasoft (un composant qui vous permet de voir le résultat).
(image la source )
Principales caractéristiques de SOAP
Voici quelques-unes des principales fonctionnalités de SOAP:
#1) Toute enveloppe SOAP peut être utilisée dans les services REST comme le jeton généré, mais pas l'inverse. Cela signifie que si vous avez créé un jeton à l'aide de SOAP, ce jeton peut être utilisé dans REST (sous la section du gestionnaire d'en-tête HTTP => Autorisation). Mais vous ne pouvez pas utiliser les enveloppes REST dans une requête SOAP.
#deux) SOAP est plus sécurisé que REST car il utilise WS-Security pour la transmission avec Secure Socket Layer.
# 3) SOAP utilise uniquement XML pour la demande et la réponse. Il n'utilise pas de texte brut ou autre.
# 4) SOAP est plein d'état (pas sans état) car il prend la requête entière dans son ensemble, contrairement à REST qui fournit un traitement indépendant des différentes méthodes. Aucun traitement indépendant n'existe dans SOAP.
Qu'est-ce que le service REST?
REST signifie Representational State Transfer . REST est une architecture «sans état» qui implique plusieurs méthodes ou verbes tout en traitant les demandes et les réponses.
Toutes les requêtes et réponses dans REST sont effectuées en XML, JSON (JavaScript Object Notation) ou en texte brut. REST est plus rapide que SOAP en raison de l'implication de JSON (qui est léger) dans la requête / charge utile de REST.
Chaque méthode est traitée indépendamment dans REST, raison pour laquelle elle est appelée architecture «sans état».
Pourquoi REST est-il plus rapide?
La nature apatride de REST le rend plus rapide qu'un SOAP. Chaque verbe est traité indépendamment et utilise JSON Object qui est beaucoup plus rapide lors du passage à un champ particulier dans un document contenant plus d'un million d'enregistrements.
Avant de commencer à propos des méthodes utilisées dans REST, nous devons connaître les chemins JSON et JSON car il s'agit du format de transmission de données le plus courant dans REST.
Qu'est-ce que JSON?
JSON signifie JavaScript Object Notation. C'est un format couramment utilisé dans le client REST.
Il est auto-descriptif et facile à comprendre également. Il vous suffit de passer votre JSON dans la section payload de la méthode REST. Il s'agit d'un format d'échange de données léger qui permet aux services REST d'être beaucoup plus rapides même s'il s'agit d'un million d'enregistrements.
Programmation avec JSON
Voici un exemple de programme avec un seul document appelé «téléphone».
(image la source )
Ceci est mon exemple de programme JSON dans lequel je dois récupérer la valeur de mon type de téléphone. Dans un tel scénario, vous pouvez utiliser deux techniques pour traverser ce champ. L'un est par chemin JSON et l'autre par clé de document.
# 1) Lorsque vous traitez avec le chemin JSON, vous pouvez utiliser deux méthodes:
$.phone(:1).type $('phone')(':1')('type')
#deux) Comme Parasoft n'autorise pas le chemin JSON, nous pouvons utiliser la clé de document qui est un peu simple lors de la traversée. Passez simplement la clé du document avec l'URL dans l'onglet des ressources comme
phone.type
Il vous suffit de cliquer sur le bouton d'ajout dans la capture d'écran ci-dessous et d'entrer phone.type et vous avez terminé.
Dans l'exemple ci-dessous, vous devez traverser le dernier élément du champ de localisation qui est un tableau. Ainsi, essayez d'écrire un chemin JSON pour cela.
casque vr pour xbox one s
Comme vous pouvez le voir sur les lignes 37 et 39 (ci-dessus), deux chemins JSON différents ont été écrits pour le même parcours jusqu'au dernier élément du champ d'emplacement. De la même manière, vous pouvez créer votre JSON (un document imbriqué complexe) et essayer d'écrire le chemin JSON à des fins pratiques.
RÉSULTAT:
(«Helsingborg»)
Vous pouvez essayer autant de JSON que vous le souhaitez, dans un site Web ouvert appelé Évaluateur en ligne JSON
Méthodes / verbes dans les services reposants
Les services REST fournissent un large éventail de méthodes également appelées verbes pour un type différent de requêtes. Ceux-ci comprennent principalement POST, PUT, PATCH, OBTENIR, SUPPRIMER, PERSONNALISER .
PUBLIER
Cette méthode est responsable de la création de l'enregistrement. En cas d'exécution réussie, le code de réponse HTTP est 201.
Voici l'exemple JSON illustrant le POST.
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
Lorsque nous transmettons ce JSON en tant que corps de requête, il crée le document avec un code de réponse 201.
OBTENIR
Il s'agit d'une autre méthode ou d'un autre verbe utilisé pour récupérer le document ou l'enregistrement. Lors de l'exécution réussie de GET, le code de réponse sera 200. Il ne contient aucun corps de requête ni aucune charge utile.
Tout ce que vous avez à faire est de frapper simplement la même URL en utilisant la méthode GET dans l'onglet ressource du Parasoft en utilisant la clé de document comme «Test». Même si vous ne transmettez aucune clé de document, il récupérera l'intégralité du document.
Disons que nous transmettons la clé de document en tant que 'Test.Test2', puis il me récupérera l'enregistrement suivant.
{ “Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
METTRE
Cette méthode est utilisée pour mettre à jour le document et elle a un code de réponse 200 après une exécution réussie.
Bien que POST et PUT ne diffèrent pas beaucoup et que tout dépend du développeur quant à la façon dont il souhaite coder. La plupart du temps, les développeurs utilisent la méthode PUT lorsqu'ils souhaitent mettre à jour une valeur de champ.
Par exemple: Si nous voulons changer une valeur dans le document JSON ci-dessus inséré par POST, nous transmettrons tout le corps de la requête avec la valeur mise à jour à l'aide de la méthode PUT.
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
Lorsque nous voyons la réponse dans le visualiseur de trafic, la valeur du champ sera mise à jour comme
«Plateforme»: «Windows mis à jour»
PATCH (PERSONNALISÉ)
Il s'agit d'une autre méthode qui est uniquement utilisée pour mettre à jour l'enregistrement. La plupart des développeurs préfèrent cette méthode à la méthode PUT car elle utilise au mieux les ressources. Si vous souhaitez mettre à jour une valeur de champ dans votre document, tout ce que vous avez à faire est de ne transmettre que ce champ avec la valeur mise à jour de l'enregistrement.
Disons que si nous voulons mettre à jour l'enregistrement POST, nous n'utiliserons que le corps de requête suivant lors de l'utilisation de PATCH.
{“Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
Comme vous l'avez remarqué, ici nous n'avons pas passé les valeurs du champ 'Test', contrairement à la méthode PUT. Une exécution réussie vous donnera un code de réponse 200 ou 201.
EFFACER
Comme son nom l'indique, il supprimera l'enregistrement également appelé préférences. Cela ne contient aucun corps de requête comme GET et a souvent le code de réponse 203 (No Content). Si nous devons supprimer tout le document, dans le JSON ci-dessus, nous passerons simplement la clé du document en tant que.
Test
Cela supprimera tout le document. Si nous ne transmettons pas du tout la clé de document, cela supprimera également tout le document.
Les pièges de l’intervieweur
Q # 1) La plupart des enquêteurs essaient de semer la confusion lorsqu'ils vous demandent qu'ils ont obtenu un code de réponse d'opération de suppression réussi comme 200 au lieu de 204. Dans ce genre de situation, que dois-je faire? Dois-je le signaler comme un bogue?
Répondre: La réponse à la question ci-dessus est simple. Vous n’avez pas à soulever de bogue. Au lieu de cela, vous pouvez parler au développeur ou essayer d'observer l'autre réponse de l'opération de suppression. Un code de réponse 200 indique toujours l'opération réussie et 204 est spécifique pour DELETE. Il se peut que les développeurs aient utilisé 200 pour toutes les opérations réussies.
Q # 2) Comment vérifier si les valeurs de champ particulières sont correctes ou non sans utiliser une base de données dans une requête JSON de 1 million de lignes de code?
Répondre: La réponse est en envoyant la clé de document dans l'opération GET. L'exemple d'URL ressemblera à celui ci-dessous:
https://resource-name.com/context-key/document-key
Dans l'URL ci-dessus, votre clé de contexte récupérera de manière unique ce JSON particulier de 1 million d'enregistrements et la clé de document récupérera la valeur de champ particulière dans cet enregistrement.
Q # 3) Si je ne spécifie aucun nom de document au-dessus de mon JSON, que dois-je passer comme clé de document pour récupérer le document entier?
Répondre: Vous pouvez tout passer. Oui, exactement. Si aucun nom de document n'est spécifié et s'il n'y a que des champs et des valeurs présents dans votre document, vous pouvez transmettre n'importe quelle valeur de chaîne. Cette chaîne sera traitée automatiquement comme votre clé de document.
Résumé
À présent, vous devriez avoir une bonne idée des services Web SOAP et REST, de leur structure, des différences majeures entre eux, de leurs fonctionnalités et de leur utilisation.
De plus, dans ce didacticiel, nous avons couvert les méthodes les plus courantes / importantes (également appelées verbes) qui sont utilisées dans les services REST avec la programmation JSON et le chemin JSON à des fins d'évaluation.
Tutoriel PREV | Tutoriel SUIVANT
lecture recommandée
- Tutoriel JSON: Introduction et un guide complet pour les débutants
- Une approche simple pour les tests de bases de données XML
- 10 meilleurs outils de test d'API en 2021 (outils de test d'API SOAP et REST)
- 15+ didacticiels SoapUI: le meilleur outil de test d'API de services Web
- 7 Caractéristiques importantes de SoapUI et SoapUI Pro - Tutoriel 2
- Comment créer un service simulé et une réponse dynamique dans SoapUI
- Comment créer un projet REST dans SoapUI Pro: Tutoriel # 13
- Processus de téléchargement et d'installation SoapUI étape par étape - Tutoriel SoapUI # 3
- Top 45 des questions et réponses d'entretien des services Web (RESTful, SOAP, questions de sécurité)