Tworząc punkt końcowy dla procesu biznesowego, należy określić typ danych, które zostaną przesłane w tym żądaniu (Request payload type). Najczęściej spotykaną opcją jest JSON; pozwala ona na wygodne określenie wszystkich niezbędnych parametrów i przekazanie modelu danych lub tablicy obiektów. Ponadto możliwe są inne opcje, na przykład XML lub Multipart Form (jeśli trzeba wysłać pliki).

Jednocześnie dopuszczalna jest sytuacja, gdy dokładna struktura nie jest z góry znana (lub po prostu nie ma znaczenia). W takim przypadku rozsądną opcją jest użycie zapytań "raw".

request payload type

Proces biznesowy dla zapytań raw

Wyobraźmy sobie sytuację, w której może to być potrzebne. Powiedzmy, że usługa, którą tworzymy jest tylko łącznikiem. Jego zadaniem jest odebranie żądania od użytkownika, sprawdzenie autoryzacji, zapisanie logów, wykonanie ochrony przed spamem i przekierowanie żądania dalej, jeśli wszystko jest w porządku.

Ważną cechą zapytań Raw jest to, że podczas projektowania procesów biznesowych nie używa się parametrów wejściowych. Zamiast tego, do uzyskania ciała żądania używany jest specjalny blok -. Get Request Body. Załóżmy, że jesteś zainteresowany rozszerzonymi informacjami o żądaniu. W takim przypadku Current Request Info jest odpowiednią opcją - zwraca nie tylko ciało żądania, ale także dodatkowe parametry i nagłówki żądania.

Current Request Info

W przypadku, gdy interesuje nas konkretny nagłówek z żądania, można go uzyskać za pomocą Get Request Header block. W powyższym przykładzie odczytany został X-Real-IP który zawiera adres IP żądania. Uzyskane IP jest przekazywane do funkcji, która musi sprawdzić, czy podane IP jest poprawne i nie znajduje się na czarnej liście zakazanych adresów. W efekcie proces zostanie albo przerwany z odpowiednim komunikatem o błędzie, albo, jeśli wszystko jest w porządku, dalsze wykonywanie będzie dozwolone.

IP Check

Żądanie, otrzymane jako Raw, jest reprezentowane jako tablica bajtów. Dla wygody odbioru można je przekonwertować na ciąg znaków (To String block); w takiej postaci informacja jest przechowywana w logach.

W tym przypadku samo żądanie, bez żadnych przekształceń, może być przekierowane dalej za pomocą HTTP Request block. W tym przykładzie określono metodę żądania, jego adres URL oraz ciało żądania (uzyskane z bloku Current Request Info ) są określone. Wynik z HTTP Request jest wykorzystywany jako wynik całego procesu biznesowego.

HTTP Request

Zrzut ekranu przedstawia ostateczny proces biznesowy. Należy pamiętać, że bloki funkcyjne (FUNC Save request Log i FUNC IP Blacklist Check) są przykładami i istnieją tylko w zakresie tego projektu.

BP Complete

Tak więc punkt końcowy może być używany do pracy z dowolnym żądaniem, niezależnie od jego rzeczywistej zawartości. Nie musisz znać dokładnego żądania, które powinno zostać wysłane do usługi zewnętrznej, a nawet jeśli zajdą w nim jakieś zmiany (dodanie modelu, zmiana nazwy parametrów), możesz nadal korzystać z endpointu bez wprowadzania zmian w projekcie.

Was this article helpful?

AppMaster.io 101 Kurs zderzeniowy

10 moduły
2 Tygodnie

Nie wiesz, od czego zacząć? Rozpocznij z naszym szybkim kursem dla początkujących i poznaj AppMaster od A do Z.

Rozpocznij kurs
Development it’s so easy with AppMaster!

Potrzebujesz więcej pomocy?

Rozwiąż każdy problem z pomocą naszych ekspertów. Oszczędzaj czas i skup się na tworzeniu aplikacji.

headphones

Skontaktuj się z pomocą techniczną

Opowiedz nam o swoim problemie, a my znajdziemy dla Ciebie rozwiązanie.

message

Czat społeczności

Omów pytania z innymi użytkownikami na naszym czacie.

Dołącz do społeczności