Objets request

Vue d'ensemble

Tous les services ont toujours accès aux attributs qui décrivent la demande traitée de manière générale. En outre, les attributs spécifiques à un protocole, tels que self.request.http, couvrent les informations qui sont limitées à un protocole particulier.

Les attributs les plus couramment utilisés sont :

Attribut Description
self.request.input Utilisé pour accéder aux données entrantes si SimpleIO est utilisé.
self.request.payload Utilisé pour accéder aux données entrantes si SimpleIO n'est pas utilisé.
self.request.raw_request Utilisé pour accéder aux données entrantes exactement dans le même format que celui dans lequel elles ont été reçues par le service, avant toute analyse ou transformation.

Ce chapitre détaille d'abord les attributs communs, puis les particularités de chaque partie spécifique au protocole.

Attributs communs

Les attributs énumérés dans cette section sont disponibles pour tous les services, quel que soit le type de canal par lequel ils sont invoqués, que ce soit HTTP, AMQP, ZeroMQ, scheduler, notifications SQL ou autre.

Attribut Description
self.request Avec self.channel, l'un des principaux attributs décrivant les messages entrants
self.request.raw_request Message d'entrée exactement tel qu'il a été reçu, octet par octet, avant toute transformation ou tentative d'analyse de la part de Zato.
self.request.input Message d'entrée après l'avoir analysé dans un format de données spécifique au canal. Pour les messages JSON, il s'agira d'un objet Bunch. Disponible uniquement si SimpleIO est utilisé.
self.request.payload Message d'entrée après l'avoir analysé dans un format de données spécifique au canal. Pour les messages JSON, il s'agira d'un objet dict. Disponible même si SimpleIO n'est pas utilisé.
self.channel Avec self.request, décrit les données et les métadonnées sur les messages entrants. Contrairement à self.request, cet attribut est le même pour toutes les demandes provenant du même canal, c'est-à-dire qu'il décrit les détails du canal lui-même plutôt que chaque message individuel reçu.
self.channel.name Nom du canal par lequel la demande a été reçue
self.channel.type Type du canal - sera égal à une des constantes dans zato.common.CHANNEL
self.chan Alias à self.channel
self.channel.security Décrit une définition de sécurité attachée au canal, s'il y en a une.
self.channel.security.name Nom de la définition de sécurité
self.channel.security.username Nom d'utilisateur utilisé pour invoquer le canal, si applicable pour un type de sécurité particulier.
self.channel.security.type Type de définition de la sécurité - sera égal à l'une des constantes in zato.common.SEC_DEF_TYPE
self.channel.sec Alias à self.channel.security

Attributs spécifiques à HTTP

Attribut Description
self.request.http L'attribut à utiliser pour accéder aux informations spécifiques à HTTP
self.request.http.method Méthode HTTP utilisée pour invoquer le service
self.request.http.GET Tous les paramètres GET sous la forme d'un objet Bunch, chaque valeur est soit une valeur exacte reçue, soit une liste de valeurs s'il y en a plus d'une pour une clé donnée.
self.request.http.POST Tous les paramètres POST sous forme d'objet Bunch, chaque valeur est soit une valeur exacte reçue, soit une liste de valeurs s'il y en a eu plusieurs pour une clé donnée. Disponible uniquement s'il n'y a pas de format de données défini pour le canal.
self.request.http.path Chemin URL par lequel la demande a été reçue, par exemple /customer/123 dans "https://localhost:17010/customer/123" ; la valeur n'inclut pas la chaîne de requête.
self.request.http.params Un objet de type dict avec une concaténation de paramètres de chaîne de requête et de chemin. Disponible même si SimpleIO n'est pas utilisé.
self.wsgi_environ Bien qu'il n'appartienne pas directement à self.request.http, chaque service peut toujours avoir accès au dictionnaire WSGI complet des données et des métadonnées relatives à la demande.

Attributs spécifiques à AMQP

Attribut Description
self.request.amqp L'attribut à utiliser pour accéder aux informations spécifiques à l'AMQP.
self.request.amqp.msg Objet de bas niveau représentant le message entrant
self.request.amqp.ack() Utilisé par les services pour accuser réception d'un message
self.request.amqp.reject() Utilisé par les services pour rejeter un message vers le broker AMQP.

Attributs spécifiques à IBM MQ

Attribut Description équivalent MQMD
self.request.ibm_mq L'attribut à utiliser pour accéder aux informations spécifiques à IBM MQ. ---
self.request.ibm_mq.msg_id ID du message MsgId
self.request.ibm_mq.correlation_id ID de corrélation CorrelId
self.request.ibm_mq.timestamp Horodatage de la création du message ---
self.request.ibm_mq.put_date Partie de la date à laquelle le message a été mis en file d'attente. PutDate
self.request.ibm_mq.put_time Partie de l'heure à laquelle le message a été mis en file d'attente. PutTime
self.request.ibm_mq.reply_to À quelle file d'attente les réponses doivent être envoyées, si elles sont attendues. ReplyToQ
self.request.ibm_mq.mqmd L'ensemble de l'en-tête MQMD tel qu'il a été reçu de MQ MQMD
self.request.ibm_mq.data Identique à self.request.raw_request - ajouté par commodité ---

Plus d'informations

  • Consultez le chapitre dédié avec des exemples de programmation pour plus de détails.
  • Pour en savoir plus sur SimpleIO, cliquez ici.
  • Visitez ce chapitre pour en savoir plus sur les objets de réponse.