Definicja API Rest

Definicja odpowiedzi

API obsługuje TYLKO usługi RESTowe, które zwracają typ application/json .

Domyślny ContentType z jakim wysyłamy zapytania do usługi to application/json. Obsługiwany jest również multipart/form-data, jeżeli w nagłówku zostanie przekazany parametr {'Content-Type': 'multipart/form-data'}. Na przykład:

api.rest.v1.get('serviceId', {queryParams: {'key': 'value'}}, {'Content-Type': 'multipart/form-data'});

Odpowiedź z usługi wygląda następująco:

{
    status: {
        code: int,
        message: String
    },
    headers: Map<String, String>,
    body: Map<String, Object>
}

Wszystkie elementy w odpowiedzi są przetworzone jako natywne zmienne w JavaScript. Można się do nich dostać np. w ten sposób:

response.status.code   // <--- uzyskanie wartości z pola `code`, zawierającego kod odpowiedzi, np. 200
response.status.message   // <--- uzyskanie wartości z pola `message`, zawierającego wiadomość odpowiedzi, np. "Accepted"
 
response.headers.language    // <---  uzyskanie wartości nagłówka zwrotnego o nazwie `language`
 
response.body.user.type    // <--- uzyskanie wartości konkretnego pola z odpowiedzi, gdzie odpowiedź ma wygląd: {"user": {"type": "typUzytkownika"}}

Definicja wyjątku

W przypadku innego kodu zwrotnego, niż 2XX dostaniemy wyjątek możliwy do obsłużenia. Np. w sytuacji z kodem 404 (usługa nie dostępna lub błędny adres), kod 405 (niepoprawna metoda) lub kod 500 (błąd wewnętrzny po stronie usługi).

Wyjątek wygląda następująco:

Aby zweryfikować, czy jest to wyjątek do obsłużenia przez nas, możemy sprawdzić, czy złapany element posiada pola, które nas interesują.

Definicja żądania

Żądanie może zostać sparametryzowane.

Żądania mogą zawierać payload:

Oraz mogą być bez payloadu:

Poniżej definicja parametrów:

Definicja PATH wygląda następująco:

Definicja TIMEOUTS wygląda następująco:

triangle-exclamation

Przykładowe wykonanie żądań znajdują się w sekcjach niżej.

Żądania

Dla każdego z poniższych żądań zakładamy spójną konfigurację:

GET

Żądanie bez payloadu.

Przykłady:

Oraz przykładowy ScriptService:

DELETE

Żądanie bez payloadu.

Przykłady:

Oraz przykładowy ScriptService:

POST

Żądanie z payloadem.

Przykłady:

Oraz przykładowy ScriptService:

PUT

Żądanie z payloadem.

Przykłady:

Oraz przykładowy ScriptService:

PATCH

Żądanie z payloadem.

Przykłady:

Oraz przykładowy ScriptService:

Eximee Designer

W Eximee Designer zostały dostarczone podpowiedzi API.

Ilustracja 1. Podpowiedzi żądań GET / POST/ PUT / DELETE.
Ilustracja 2. Opis podpowiedzi dotyczącej konkretnego żądania (GET).

Ilustracja 3. Widok po wstawieniu kodu automatycznie z poziomu podpowiedzi.

Oraz podpowiedzi możliwych serviceId do wykorzystania w aktualnym momencie. W przypadku problemu z pobraniem aktualnej listy serviceId, edytor kontynuuje działanie, ale nie dostarcza informacji o żadnym serviceId.

Ilustracja 4. Podpowiedź serviceId poza znakiem: ' oraz "

Ilustracja 5. Podpowiedź serviceId ograniczona znakiem: "

circle-info

Przykłady

"demo_api_RestTest" - wykonanie żądań z różnymi parametrami

"demo_api_exchangeRate_404" - obsługa wyjątku

"demo_api_exchangeRate_validator" - przykład walidatora z wołaniem usługi zewnętrznej

Testowanie API (Postman)

Postman to narzędzie do testowania i pracy z API, które pozwala łatwo wysyłać zapytania HTTP (np. GET, POST) i analizować odpowiedzi serwera. (https://www.postman.com/arrow-up-right)

Last updated

Was this helpful?