Rubrique précédente: Protocole de données RESTRubrique suivante: Protocole de données prenant en charge les scripts


Format des paires demande-réponse

Cette rubrique décrit le format des paires demande-réponse pour le protocole de données REST.

Request (Demande)

Le fichier de demande doit inclure un en-tête HTTP valide. L'URL est la première ligne de l'en-tête. Les autres lignes d'en-tête sont facultatives.

Le gestionnaire de protocole de données REST prend en charge toutes les méthodes ou les syntaxes HTTP : GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT et PATCH.

Le format de la ligne URL est le suivant :

<méthode><espace><chemin_accès_API_REST><espace><version_HTTP>

Par exemple :

PUT /rest-example/control/users/save HTTP/1.1

Si la demande inclut un corps, séparez le corps de l'en-tête à l'aide d'une ligne vide.

L'exemple suivant présente une demande qui contient un corps au format JSON.

PUT /rest-example/control/users/save HTTP/1.1
accept: application/json
content-Type: application/json
Connection: Keep-Alive
User-Agent: LISA

{
  "user": {
    "emailAddress": "test@test.com",
    "firstName": "first-9",
    "lastName": "last-9",
    "password": "aaaaaaaa",
    "username": "dmxxx-009"
  }
}

Vous pouvez condenser le corps JSON ou XML sur une ligne unique.

{ "user": { "emailAddress": "test@test.com","firstName": "first-9", "lastName": "last-9", "password": "aaaaaaaa", "username": "dmxxx-009"  }}

Response (Réponse)

Le fichier de réponse contient un code de réponse HTTP. Il peut contenir un en-tête et un corps. Le code de réponse doit être la première ligne dans le fichier, au format suivant :

<version_HTTP><espace><code_réponse_HTTP>

L'exemple suivant présente une réponse contenant un corps.

HTTP/1.1 200

"user":{"emailAddress":"lisa.simpson@itko.com","firstName":"lisa",
"lastName":"simpson","password":"60fAFoq+W0R4HrLgsfPodkWRw9I=",
"phoneNumber":"","username":"lisa_simpson"}}

Si la réponse n'inclut pas une ligne de code de réponse, le code de réponse est remplacé par défaut par 200 (OK).

Révision et modification des règles

L'enregistreur d'image de service virtuel et l'interface du service virtuel à partir des paires demande-réponse inclut une page dans laquelle vous pouvez réviser et modifier les règles créées par le protocole de données REST.

Le graphique suivant présente la fenêtre dans l'enregistreur d'image de service virtuel.

Capture d'écran de la fenêtre de protocole de données REST

Le volet supérieur (URI Rules (Règles d'URI)) affiche les règles. Lorsque vous sélectionnez une règle, le volet inférieur (Sample of matching traffic (Exemple de trafic correspondant)) affiche un exemple de trafic qui correspond à la règle. Pour configurer le nombre maximum de lignes qui s'affichent, définissez la propriété lisa.protocol.rest.editor.observedtraffic.max dans le fichier lisa.properties.

Pour afficher une liste de demandes HTTP qui ne correspondent pas aux règles, cliquez sur Unmatched Traffic (Trafic non correspondant). Cette liste est vide si les règles correspondent à tout le trafic collecté. Pour configurer le nombre maximum de demandes qui s'affichent, définissez la propriété lisa.protocol.rest.editor.unmatchedtraffic.max dans le fichier lisa.properties.

Le volet URI Rules (Règles d'URI) vous permet d'ajouter, de mettre à jour, de réorganiser et de supprimer les règles.

Fenêtre de trafic non correspondant de protocole de données REST de l'environnement de service virtuel

Vous pouvez remplacer les paramètres dans les règles par des noms significatifs. Par exemple :

GET /Service/rest/customer/{customerid}/order/{orderid}

Vous pouvez créer plusieurs règles qui correspondent à la même opération. Les règles sont appliquées dans l'ordre affiché. En conséquence, une règle placée dans une position élevée dans la liste peut renvoyer une correspondance, alors que vous supposiez qu'une règle située plus bas dans la liste allait s'appliquer. Pour changer l'ordre, utilisez les boutons de réorganisation.

Si vous supprimez une règle, cliquez sur Unmatched Traffic (Trafic non correspondant) pour voir l'effet de la suppression de la règle sur le trafic capturé.

Pour changer les valeurs des propriétés de configuration suivantes, cliquez sur Properties (Propriétés).

Vous pouvez effectuer une nouvelle analyse du trafic en cliquant sur Properties (Propriétés) ; la page des propriétés s'affiche. Cliquez alors sur OK sans modifier les valeurs. Par exemple, vous pouvez effectuer cette action après avoir lié un protocole de données prenant en charge les scripts et un protocole de données REST.

Max Changes (Nombre maximum de modifications)

Définit le nombre maximum de modifications permises pour un jeton avant que la variabilité soit considérée suffisamment significative pour générer une règle.

Considérez un URI comme une liste de jetons séparée par le caractère "/". Par exemple, l'URI GET /rest/user/1234 contient les jetons :

Pour modifier la valeur par défaut, définissez la propriété lisa.protocol.rest.maxChanges dans le fichier lisa.properties.

Start Position (Position de début)

Définit la position dans l'URL à partir de laquelle le protocole de données REST commence à rechercher des jetons variables.

La position de début est l'index d'un jeton dans la liste des jetons qui compose un URI. Par exemple, dans l'URI :

GET /service/rest/customers"

GET est à la position 0 et customers est à la position 3.

Pour modifier la valeur par défaut, définissez la propriété lisa.protocol.rest.startPosition dans le fichier lisa.properties.

Id Identification Regular Expression (Expression régulière d'identification d'ID)

Définit une chaîne d'expression régulière que le protocole de données REST utilise pour détecter des identificateurs de ressource dans les demandes HTTP. Pour modifier la valeur par défaut, définissez la propriété lisa.protocol.rest.idPattern dans le fichier lisa.properties.

URL Parameter Prefix (Préfixe de paramètre URL)

Définit le préfixe que le protocole de données REST utilise pour les paramètres dans des règles.

Le but de ce paramètre est d'aider l'analyseur à identifier les jetons qui suivent un modèle spécifique variable, mais que l'analyseur peut ne pas détecter automatiquement.

Par exemple, dans l'URI :

GET /rest/user/person-1234-dev

vous pouvez savoir qu'un ID d'utilisateur au format person-nnnn-nnn suit toujours user. Dans ce cas, vous pouvez définir une expression régulière pour détecter ce modèle directement. Dans cet exemple, l'expression régulière serait :

person-[0-9]{4}-[a-z]{3}

Pour modifier la valeur par défaut, définissez la propriété lisa.protocol.rest.parameterBaseName dans le fichier lisa.properties.

Si vous changez une ou plusieurs valeurs pour ces propriétés, le protocole de données réanalyse le trafic enregistré.

L'illustration suivante représente la fenêtre Analyzer Properties (Propriétés de l'analyseur).

Fenêtre de propriétés de l'analyseur de protocole de données REST de l'environnement de service virtuel