Lorsque vous créez un point de terminaison pour un processus d'entreprise, vous devez spécifier le type de données qui sera envoyé dans cette requête (Request payload type). L'option la plus courante est JSON; elle vous permet de spécifier facilement tous les paramètres nécessaires et de transmettre un modèle de données ou un tableau d'objets. D'autres options sont également possibles, par exemple XML ou Multipart Form (si vous devez envoyer des fichiers).

En même temps, une situation est acceptable lorsque la structure exacte n'est pas connue à l'avance (ou qu'elle n'a tout simplement pas d'importance). Dans ce cas, une option raisonnable consiste à utiliser les requêtes "raw".

request payload type

Processus de gestion des requêtes " raw

Imaginez une situation où cela pourrait être nécessaire. Disons que le service que nous développons est juste un lien de connexion. Sa tâche consiste à recevoir une demande de l'utilisateur, à vérifier l'autorisation, à enregistrer les journaux, à assurer la protection contre le spam et à rediriger la demande si tout est en ordre.

Une caractéristique importante des requêtes Raw est qu'aucun paramètre d'entrée n'est utilisé lors de la conception des processus métier. Au lieu de cela, un bloc spécial est utilisé pour obtenir le corps de la requête -. Get Request Body. Supposons que vous soyez intéressé par des informations étendues sur la demande. Dans ce cas, le bloc Current Request Info est une option appropriée - il renvoie non seulement le corps de la demande mais aussi des paramètres supplémentaires et des en-têtes de demande.

Current Request Info

Dans le cas où nous sommes intéressés par un en-tête spécifique de la requête, il peut être obtenu en utilisant le bloc Get Request Header pour l'obtenir. L'exemple ci-dessus lit l'en-tête X-Real-IP qui contient l'adresse IP de la demande. L'IP résultante est passée à une fonction qui doit vérifier que l'IP donnée est valide et ne figure pas sur la liste noire des adresses interdites. En conséquence, le processus sera soit interrompu avec un message d'erreur approprié, soit, si tout est en ordre, la poursuite de l'exécution sera autorisée.

IP Check

La demande, reçue à l'adresse Raw, est représentée par un tableau d'octets. Pour la commodité de la perception, elle peut être convertie en une chaîne de caractères (To String bloc) ; sous cette forme, l'information est stockée dans les journaux.

Dans ce cas, la demande elle-même, sans aucune transformation, peut être redirigée plus loin en utilisant le bloc HTTP Request bloc. Dans cet exemple, la méthode de requête, son URL et le corps de la requête (obtenu à partir du bloc Current Request Info ) sont spécifiés. Le résultat du bloc HTTP Request est utilisé comme le résultat de l'ensemble du processus de gestion.

HTTP Request

La capture d'écran montre le processus commercial final. Veuillez noter que les blocs fonctionnels (FUNC Save request Log et FUNC IP Blacklist Check) sont des exemples et n'existent que dans le cadre de ce projet.

BP Complete

Ainsi, le point de terminaison peut être utilisé pour travailler avec n'importe quelle demande, quel que soit son contenu réel. Vous n'avez pas besoin de connaître la requête exacte qui doit être envoyée à un service tiers, et même si elle est modifiée (ajout d'un modèle, renommage de paramètres), vous pouvez continuer à utiliser le point de terminaison sans apporter de modifications au projet.

Was this article helpful?

AppMaster.io 101 Cours accéléré

10 Modules
2 Semaines

Vous ne savez pas par où commencer ? Lancez-vous avec notre cours accéléré pour débutants et explorez AppMaster de A à Z.

Début du cours
Development it’s so easy with AppMaster!

Besoin d'aide?

Résolvez n'importe quel problème avec l'aide de nos experts. Gagnez du temps et concentrez-vous sur la création de vos applications.

headphones

Contactez le support

Parlez-nous de votre problème et nous vous trouverons une solution.

message

Chat communautaire

Discutez de questions avec d'autres utilisateurs dans notre chat.

Rejoindre la Communauté