#Postman01- Czym jest RestAPI, czym jest Postman – pobranie, omówienie, przykłady

Reading Time: 6 minutes
‚Znośnego tygodnia’ 😎

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

Mamy dowody w postaci screenów 😀

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

Mam tu informacje o 200 czyli powodzeniu metody get narazie bez autoryzacji.
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 :

Odpalamy instalator
Instalator ‚robi wszystko za nas’, także nie ma przycisków dalej itp.
W sumie zainstalowaliśmy POSTMANA aby nie ograniczać się co do używanych przeglądarek, gdzie np. pokaże na FF i na chromie będzie inaczej.
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 :

Do większości akcji potrzebujemy stworzyć lub zalogować się do konta jeśli ów takie posiadamy.

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

Wyłazimy z tego iksem i z historii skaczemy na collections.
Wyżej widzimy mamy folderowo podzielone requsty / żądania.
Bardzo ładnie koloruje nazwe metody GET POST czy PUT.

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.

Po poprawnym wpisaniu i powalczeniu z reCAPTCHA mamy id oraz nasz sekret.
Klikamy use token następnie przycisk update.

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.

Po zautoryzowaniu mnie wywołuje dowolną metodę, wcześniej wrzucając obrazy na imgura i to prosty test że autoryzacja przeszła poprawnie

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 ?

404 ale komentarz dalej widoczny xD

Ok to moze cache

Nie mamy juz komentarza.

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 🙁 😀

Napisz komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.