
Witajcie moi drodzy w kolejnym wpisie na blogu.
Na tapetę idzie narzędzie o nazwie Postman.
Oczywiście nie jest tak, że to jedyne i słuszne narzędzie do testowania końcówek RESTowych, bo zapewne też i na moim blogu pojawią się wpisy które, będą dotyczyć również innych popularnych i interesujących narzędzi jak np. SoapUI, Katalon Studio (pod kątem testowania API) jak i framework do Javy o nazwie Rest Assured, także śledźcie bloga. 😀
Ciekawostka – postwoman

Bezpośrednią alternatywą, która kiedyś powstała był fork postwoman.
Aktualnie nazywa się on jakoś dziwacznie jako hoppscotch, ciekawe dlaczego zrezygnowano z poprzedniej nazwy.
https://hoppscotch.io/ – możecie sobie obczaić projekt tutaj i co ciekawe z poziomu tej strony, możemy od razu wywołać zapytanie restowe.
Uwaga chrome i firefox blokują wykonywanie restów, które nie są szyfrowane na http, więc generalnie albo znajdziemy obejście na to albo szukamy projektów wystawionych na świat z https.
Nie byłbym sobą jakbym nie wykonał jakiegoś przykładowego testu na tej stronie 😀 Tutaj macie sampla z https – > https://jsonplaceholder.typicode.com/todos/1

Zwrócone dane domyślnie zaprezentowano w JSON.
Trochę teorii – REST_API, kody odpowiedzi HTTP, metody HTTP
Być może nie zrozumieliście co napisałem jakieś 200 czy get co to w ogóle jest ? Już spieszę z wyjaśnieniami. Do testów RestAPI potrzebujemy wiedzy, która już była prezentowana w innym wpisie, mianowicie tym dotyczącym konsoli przeglądarki i tam zakładka network.
Wspomniany wpis znajduje się pod tym linkiem – > https://gregkaqa.pl/index.php/2020/04/01/pracazlogami01-tryb-dewelopera-czyli-logi-przegladarki/
Co to REST API ?
Representational state transfer (zmiana stanu poprzez reprezentacje), REST – styl architektury oprogramowania wywiedziony z doświadczeń przy pisaniu specyfikacji protokołu HTTP dla systemów rozproszonych. REST wykorzystuje m.in. jednorodny interfejs, bezstanową komunikację, zasoby, reprezentacje, hipermedia, HATEOAS.
WebAPI – rodzaj sieciowego interfejsu programowania aplikacji (ang. network-based API), w którym wykorzystuje się architekturę i protokoły sieci Web (w szczególności protokół HTTP) do komunikacji między aplikacjami znajdującymi się na oddzielnych urządzeniach w sieci.
Źródła z wikipedia – > https://pl.wikipedia.org/wiki/Representational_state_transfer
https://pl.wikipedia.org/wiki/WebAPI
Teoria – kody i metody HTTP
Generalnie patrząc na to wyżej testujemy komunikacje pomiędzy aplikacją a serwerem za pomocą protokołu HTTP.
A więc statusy i kody odpowiedzi takie jak :
200 – kod odpowiedzi OK
404 – nie znaleziono BŁĄD
401 – niezautoryzowano BŁĄD
Wiedza o tych statusach odpowiedzi będzie nam potrzebna do pisania testów API, ale w tamtym wpisie wspominałem także o metodach HTTP.
A są to między innymi :
GET – daj mi / pobierz
POST – stwórz lub zaktualizuj zasób ale dynamicznie tworzy nowy wygenerowany numer id i adres docelowy jest inny
PUT – to samo co POST z tą różnicą, że bazuje na ‘statycznych’ adresach
najczęściej jednak służy do aktualizacji zasobu
Metoda HEAD – robi to samo co GET jednak z samym nagłówkiem odpowiedzi
Metoda DELETE – metoda usuwa podany zasób np. parametrami
OPTIONS – to metoda informacyjna, można wydobyć dostępne metody możliwe do używania dla danego zasobu lub całego serwera.
Kolejna metoda ze standardu HTTP to metoda PATCH
Jest to częściowa zmiana elementów danego zasobu.
Jeśli chcecie dokładnie o tym poczytać zapraszam do mojego wpisu i ev. innych które podlinkowałem w tamtym wpisie.
Postman – pobieramy i instalujemy
Standardowo – strona domowa
https://www.postman.com/downloads/
Pobieramy wersje odpowiednio dla naszego systemu operacyjnego.
Instalacja standardowa czyli :



Bowiem postman posiada też wtyczki do przeglądarek.
Pierwszy plus jaki pojawi się dla Postmana jest API Network czyli gotowce, aby ćwiczyć testowanie API 😀
Klikamy guzik new następnie zmieniamy kartę na API Network naszym oczom ukazuje się coś takiego :

Ja się zalogowałem za pomocą google następnie przechodząc do api network i np. imgura (taki hosting obrazków, gifów itp.)
Klikamy run in postman



Jestem przekonany że tutaj będziemy potrzebować pewnej autoryzacji ale sprawdźmy to.
Nie może być zbyt łatwo wiec ogarniamy tego imgura.
Na początek załóżcie konto ja już mam swoje, także nie ma lipy.
Według dokumentacji API dostępnej tutaj : https://apidocs.imgur.com/.
Musimy kliknąć przycisk run in postman znajdując się na tej stronie.
Ale my to zrobiliśmy już wcześniej, także zostaniemy poinformowani czy chcemy importować jako kopię. Czyli ten krok pomijamy.

https://api.imgur.com/oauth2/addclient
Przechodzimy tutaj i autoryzujemy naszego postmana.





Przepisujcie z obrazka lub kopiujcie wartości z tuta https://apidocs.imgur.com/
Klikamy request token i musimy się zalogować potwierdzając chęć autoryzacyjną.

Następnie uzyskujemy autoryzacje dzięki, której będziemy mogli odpalać metody.



Dobra to byłyu przykładowe metody get, get bez parametrów z parametrami.
Czas na jakiś POST.


Robimy sobie komentarz do dowolnego obrazka lub albumu na imgur.
A więc wyszukałem sobie przykładowy : https://imgur.com/gallery/tLcNXXG


No i jak widzimy wysłaliśmy sobie komentarz do fotki.
Wystarczyło podać treśc komentarza, która była domyślna i dodać tylko id obrazka lub id albumu czyli kawałek z urla ‘tLcNXXG’.
Jak widzimy IZI PIZI.
No to czas usunąć komentarz 😀

Wszędzie bugi czy źle działa API ?

Ok to moze cache


Imgura czasami zamula, a więc musiałem ręcznie pokombinować z sortowaniem i wtedy zatrybił, ten dubel to akurat ja drugi raz klikałem, będzie więcej do usuwania.

Sprawdzcie sami czy będzie komentarz jak tak, to coś nie tak mają z odświeżaniem i requestami 😀
Próbowałem metody put jednak postanowiłem autowygenerowany typ zmienić na post i pomogło.

Mimo że oznaczyło tę metodę jako put to jednak zwracał on 200ok, ale na stronie nie było tego opisu / about jaki wstawiłem do requesta.
Według definicji używam jednego pola które chce ‘zaktualizować’.
No dobra spróbujemy ogarnąć na kolejnym wpisie numer 2 o postmanie.
A także należy przyjrzeć się innym narzędziom jak one sobie radzą.
Podsumowanie
Postman to fajne opensourcowe narzędzie, które z powodzeniem przyda się amatorom, którzy dopiero zaczynają się uczyć testowania jak i zaawansowanym, bowiem ten program ma rzesze fanów i dobre wsparcie oraz aktualizacje, integracje. Przyjemnie się go obsługuje, obsługuje bez ‘kodowania’, przechwytywanie np. tokenu jako autoryzacji.
Nie takie API straszne jak je malują.
W kolejnym wpisie na pewno część druga, mniej pitu pitu, więcej przykładów może np. newman i nie tylko, bo właśnie o praktykę a nie o teorię chodzi na tym blogu.
Trzymajcie się ciepło przy końcówce kalendarzowego polskiego lata.
Jesień – najgorzej 🙁 😀