```html
Lorsque vous utilisez Apidog pour les tests d'API, il peut arriver que vous ayez besoin d'extraire les paramètres de requête de l'API de test actuelle à d'autres fins. Par exemple, considérez une API de création de commande pour une plateforme de commerce électronique avec le corps de requête suivant :
{"id": 12345,"products": [
{"id": 1, "quantity": 2},
{"id": 3, "quantity": 1}
],"shippingAddress": "xx Province xx City xx District","paymentMethod": "credit_card"
}
Dans ce scénario, vous souhaiterez peut-être :
- Extraire et chiffrer les paramètres de requête : pour protéger la confidentialité, vous devrez peut-être chiffrer la valeur du paramètre
shippingAddress
avant de l'envoyer. - Stocker les paramètres de requête en tant que variables : vous souhaiterez peut-être définir le paramètre
id
comme une « variable temporaire » à utiliser dans les tests d'API ultérieurs (comme la vérification de l'état de la commande). - Valider les paramètres de requête : avant d'envoyer la requête, vous devrez peut-être vérifier si le paramètre
paymentMethod
a une valeur valide.
Pour gérer cela, vous pouvez extraire les paramètres de requête de l'API à l'aide de la méthode pm.request
. Vous pouvez créer un script personnalisé qui affiche pm.request
dans la console, ce qui vous permet d'afficher diverses informations sur les paramètres. Par exemple :
// Informations sur les paramètres de requête de l'API actuelleconsole.log(pm.request);
Le request
dans cette méthode fait référence à l'objet de requête de l'API. Dans les scripts « Pre-request », il représente la « requête en attente », tandis que dans les scripts « Post-request », il fait référence à la « requête envoyée ».
Vous pouvez décider de récupérer les paramètres de la requête actuelle dans le script pre-request ou post-request en fonction de vos besoins :
- Pour les paramètres avant d'envoyer la requête : utilisez les scripts pre-request.
- Pour les paramètres après l'envoi de la requête : utilisez les scripts post-request.
Notez que seules les modifications apportées dans les scripts « Pre-request » sont effectives ; les modifications apportées dans les scripts « Post-request » ne prendront pas effet.
Cet article présente principalement comment obtenir les paramètres de requête de l'API actuelle via des scripts dans les fonctionnalités « Pre-request Script » et « Post-request Script » d'Apidog.
Pour obtenir les paramètres de requête d'autres API, vous pouvez stocker les paramètres dans des variables d'environnement, puis les lire, ou utiliser la fonctionnalité « Tests ». Avec « Dynamic Values », vous pouvez directement lire les paramètres de requête ou les données de réponse des étapes précédentes (c'est-à-dire d'autres API).

Guide étape par étape pour extraire les paramètres de requête ?
Récupérer l'URL Pre-Request
L'URL pre-request est l'adresse du service configurée dans « Gestion de l'environnement ».

Pour obtenir l'URL pre-request de l'API actuelle, vous pouvez utiliser les méthodes pm.request.getBaseUrl()
ou pm.request.baseUrl
. Par exemple :
// Obtenir l'URL pre-request
let preUrl = pm.request.getBaseUrl();
console.log(preUrl);
// Ou
let baseUrl = pm.request.baseUrl;
console.log(baseUrl);

Si plusieurs URL pre-request sont configurées, le script obtiendra l'URL correspondant au service spécifié. Vous pouvez consulter et gérer ces configurations via « Modifier-> Service (URL Pre-request) ».

Récupérer les paramètres de chemin
Les paramètres de chemin font partie de l'URL utilisée pour spécifier le chemin de la ressource, identifiant souvent des ressources ou des collections spécifiques. Dans Apidog, les paramètres de chemin sont représentés à l'aide d'accolades {}
, directement inclus dans le chemin de l'URL. Par exemple :
https://Apidogmock.com/xxx/xxx/store/products/{id}
Dans cet exemple, {id}
est un paramètre de chemin qui peut être remplacé dynamiquement. Vous pouvez extraire les paramètres de chemin à l'aide de pm.request.url.path
, qui renvoie un tableau contenant tous les noms de chemin, permettant un accès précis via l'indexation du tableau :
// Obtenir les paramètres de chemin à partir de pm.request.url.path
let getPathUrl = pm.request.url.path;
// Imprimer les données dans la consoleconsole.log(getPathUrl);
console.log(getPathUrl[4]);

Récupérer les paramètres de requête
Les paramètres de requête sont des informations supplémentaires jointes à l'URL, généralement après le point d'interrogation ?
et formatées sous forme de paires clé-valeur, séparées par &
. Par exemple :
https://Apidogmock.com/xxx/xxx/store/products/{id}?cart_id=42®ion_id=43
Pour extraire les paramètres de requête, utilisez pm.request.url.query
, qui récupère toutes les paires clé-valeur. Vous pouvez ensuite utiliser la méthode get()
pour récupérer spécifiquement un paramètre. Voici comment extraire le paramètre cart_id
:
// Obtenir les paramètres de requête à partir de pm.request.url.query
let getQueryUrl = pm.request.url.query;
// Imprimer les données dans la consoleconsole.log(getQueryUrl);
console.log(getQueryUrl.get("cart_id"));

Obtenir l'URL complète
Pour obtenir l'URL complète de la requête API, y compris l'URL pre-request, les paramètres de chemin et les paramètres de requête, utilisez la méthode pm.request.url.toString()
:
// Imprimer l'URL complète dans la consoleconsole.log(pm.request.url.toString());
Cette méthode renvoie une chaîne contenant toutes les informations d'URL, avec des remplacements dynamiques pour les paramètres de chemin et tous les paramètres de requête.

Récupérer les paramètres du corps
- Pour le format form-data : form-data organise les données en paires clé-valeur, souvent utilisées pour les téléchargements de fichiers et les soumissions de formulaires complexes. Pour obtenir les paramètres du corps form-data, utilisez
pm.request.body.formdata
, qui renvoie un objet de tableau :
// Lorsque le type de corps est form-data
let formData = pm.request.body.formdata;
// Imprimer les données dans la consoleconsole.log(formData);
console.log(formData.get("email"));
console.log(formData.get("password"));

- Pour le format x-www-form-urlencoded : Similaire à form-data, x-www-form-urlencoded utilise également des paires clé-valeur. Pour obtenir ces paramètres, utilisez
pm.request.body.urlencoded
:
// Lorsque le type de corps est x-www-form-urlencoded
let urlencoded = pm.request.body.urlencoded;
// Imprimer les données dans la consoleconsole.log(urlencoded);
console.log(urlencoded.get("email"));
console.log(urlencoded.get("password"));

- Pour le format raw, JSON ou XML : Utilisez
pm.request.body.raw
pour obtenir le contenu brut du corps, en renvoyant une chaîne. Vous devrez généralement l'analyser pour accéder à des paramètres spécifiques :
// Pour le format raw, JSON ou XML
let formData = pm.request.body.raw;
// Analyser en objet JSON
let jsonData = JSON.parse(formData);
// Imprimer les données dans la console
console.log(jsonData);
console.log(jsonData.email);
console.log(jsonData.password);

Récupérer les paramètres d'en-tête
Pour récupérer les paramètres d'en-tête de la requête, utilisez pm.request.headers
, qui renvoie un objet de tableau contenant toutes les informations d'en-tête de la requête. Vous pouvez localiser et extraire avec précision des valeurs de paramètres spécifiques à l'aide de la fonction get()
:
// Obtenir les paramètres d'en-tête de la requête
let headers = pm.request.headers;
// Imprimer les données dans la consoleconsole.log(headers);
console.log(headers.get("Accept"));
FAQ sur la récupération des paramètres de requête
Pourquoi les variables référencées ne sont-elles pas remplacées ?
Si les paramètres de votre requête API référencent des valeurs de variables d'environnement, mais ne sont pas remplacés par des valeurs spécifiques dans la console, assurez-vous de déplacer le « Remplacement de variable et héritage parent » au tout début de votre script dans la section Pre-request ou Post-request. Cela garantit que toutes les variables référencées (y compris les valeurs dynamiques) sont remplacées par le contenu réel.
Annexe
Méthodes et descriptions
Méthode | Description | Objectif |
---|---|---|
pm.request | Obtenir les informations sur les paramètres de requête de l'interface actuelle | Accéder à l'objet de requête |
pm.request.getBaseUrl() | Obtenir l'URL pre-request | Récupérer l'adresse du service |
pm.request.baseUrl | Obtenir l'URL pre-request (méthode alternative) | Récupérer l'adresse du service |
pm.request.url.path | Obtenir les paramètres de chemin | Extraire les paramètres de chemin d'URL |
pm.request.url.query | Obtenir les paramètres de requête | Extraire les paramètres de requête d'URL |
pm.request.url.toString() | Obtenir l'URL complète | Récupérer tous les paramètres dans l'URL complète |
pm.request.body.formdata | Obtenir les paramètres du corps form-data | Extraire les données de formulaire |
pm.request.body.urlencoded | Obtenir les paramètres du corps x-www-form-urlencoded | Extraire les données de formulaire codées en URL |
pm.request.body.raw | Obtenir les paramètres du corps raw, JSON ou XML | Extraire le contenu brut du corps de la requête |
pm.request.headers | Obtenir les paramètres d'en-tête | Extraire les informations d'en-tête de la requête |
JSON.parse() | Analyser la chaîne JSON | Convertir la chaîne JSON en objet JavaScript |
Conclusion
Cet article a décrit comment extraire les paramètres de requête dans Apidog, y compris les URL pre-request, les paramètres de chemin, les paramètres de requête, les paramètres du corps et les paramètres d'en-tête. En utilisant l'objet pm.request
et ses méthodes associées, vous pouvez facilement obtenir et manipuler diverses données de requête.
```