Kako testirati i igrati se s web API-jevima na jednostavan način s poštarom

U svijetu u kojem statične web stranice i aplikacije sve više ovise o odvojeno održavanim API-ima, teško je dokučiti kako funkcioniraju samo igranjem u pregledniku.

Pa kako možemo koristiti Postman za testiranje postojećih API-ja i razumijevanje njihovog rada?

  • Što je poštar?
  • Što ćemo graditi / učiti?
  • Dio 0: Dogovaranje s poštarom
  • 1. dio: Uvod u poštara
  • Dio 2: Stvaranje novog zahtjeva poštara za DOBIVANJE informacija o Squirtleu
  • Dio 3: Stvaranje zbirke zahtjeva u Poštaru za PokéAPI
  • Dio 4: Podnošenje POST zahtjeva poštaru da prevede rečenice kako bi zvučale kao Yoda
  • Dio 5: Ovjeravanje zahtjeva API-ju za Lord of the Rings pomoću API ključa

Što je poštar?

Poštar je alat koji timovi mogu koristiti za pouzdano testiranje API-ja koristeći jednostavne konfiguracije. Opremljen je značajkama koje biste očekivali kada se bavite API-jevima, uključujući provjeru autentičnosti, postavljanje zaglavlja, prilagođavanje korisnog tereta i još mnogo toga što pomaže smanjiti trenje korištenja API-ja.

I nije samo za testiranje. Ljepota je u tome što se ovo može koristiti za mnoge aspekte rada s API-ima za mnogo različitih članova tima. Možda upravitelj projekta želi potvrditi da stvari funkcioniraju ili će možda biti lakše izvršiti promjenu izravno s API-jem, ili QA inženjer mora biti siguran da sve još uvijek radi ili programer želi aktivno unositi promjene tijekom rada na samom API-ju .

Najbolji dio o tome - poštar pruža značajke suradnje. Besplatni nivo uključuje izvoz i uvoz kolekcija spremljenih API zahtjeva, kao i stvaranje zajedničkih veza. Ako ste dio tima, oni imaju plaćene razine koje vam omogućuju sinkronizaciju zbirki kako bi svi bili najnoviji i najnoviji.

Što ćemo graditi / učiti?

Proći ćemo kroz dva različita primjera API-ja kako bismo pokrili koncepte Poštara.

Prvo ćemo proći kroz neke jednostavne HTTP zahtjeve s javnim API-jem za Pokémon.

Zatim ćemo koristiti Yoda Translator API za jedan dio da pokažemo kako se izrađuju određeni HTTP zahtjevi.

Jednom kad shvatimo kako funkcioniraju osnove, koristit ćemo Lord of the Rings API kako bismo naučili kako provjera autentičnosti funkcionira s API-jevima. Da biste to učinili, morat ćete se registrirati za besplatni račun za API ključ.

Dio 0: Dogovaranje s poštarom

Prije nego što započnemo, trebat će vam poštar da biste nastavili s ovim korakom. Dobra vijest je da je Poštar dostupan besplatno na Mac, Windows i Linux, tako da biste trebali pronaći verziju koja vam odgovara.

Nabavite poštara: //www.postman.com/downloads/

Jednom preuzmite, prođite kroz standardne upute za instalaciju, otvorite je i trebali bismo biti spremni!

1. dio: Uvod u poštara

Kad prvi put otvorite Poštara, odmah će vam se prikazati lansirna ploča s hrpom opcija za početak.

Možda se čini pomalo neodoljivim, ali hajde da raščlanimo neke od ključnih pojmova koje ćemo morati znati.

Zahtjevi

Zahtjev je nekako onakav kako zvuči, to je specifični API zahtjev. Ovo će biti jedna vrsta zahtjeva, bilo da se radi o GET-u ili POST-u do određene krajnje točke. Morat ćete stvoriti nove zahtjeve za svaku vrstu krajnje točke koji će vam omogućiti da se krećete između njih tijekom testiranja.

Zbirke

Zbirka je skupina zahtjeva. Ovo je zgodno za organiziranje vaših zahtjeva u različite grupe. To može biti jednostavno kao dva potpuno različita API-ja (tj. Twitter vs Slack) ili mogu biti dvije različite skupine API-ja za jedan API (tj. Twitter Twitter Tweets API protiv Twitter Accounts API).

Odobrenje

Ovlaštenje je način na koji se autentičnost zahtjeva provjerava pomoću API-ja, bilo da je osoba koja podnosi zahtjev ili računalo koje taj zahtjev podnosi u vaše ime. To se obično isporučuje u obliku API ključa koji može biti statička vrijednost dodijeljena vašem računu ili dinamički generirana s alatima poput OAuth.

Okruženja

Okruženja će vam omogućiti da svoje krajnje točke konfigurirate tako da koriste određene varijable koje olakšavaju upotrebu istih krajnjih točaka između različitih okruženja. Na primjer, možda imate istu /profilekrajnju točku i u proizvodnom i u razvojnom okruženju, ali one imaju različite domene. Okruženja vam omogućuju upravljanje jednim zahtjevom s promjenjivom domenom.

Radni prostori

U ovom postu nećemo ulaziti predaleko u radne prostore, ali omogućuje vam upravljanje i organiziranje različitih skupova zbirki. Zamislite ako poštar želite koristiti i za posao i za osobni projekt, možda imate radni radni i osobni radni prostor.

U svrhu ovog članka pokrivat ćemo zahtjeve, zbirke i autorizaciju.

Dio 2: Stvaranje novog zahtjeva poštara za DOBIVANJE informacija o Squirtleu

Sad kad bolje razumijemo različitu terminologiju, kreirajmo zapravo zahtjev.

U gornjem lijevom kutu korisničkog sučelja trebali biste vidjeti ali narančasti gumb s natpisom Novo . Samo naprijed i kliknite to, a zatim odaberite Zahtjev .

Prije nego što uđemo u sam zahtjev, on zahtijeva nekoliko stvari.

Prvo što treba je ime. Počet ćemo od zahtjeva za informacijama o Pokémon Squirtleu, pa nazovimo ovo „Pokémon - Squirtle“.

Također zahtijeva kolekciju, pa kliknite Stvori kolekciju i nazovimo kolekciju „Moj omiljeni Pokémon“.

Kliknite narančasti gumb kvačice pored naziva zbirke, a zatim pritisnite Spremi .

U ovom trenutku imat ćemo novi zahtjev, pa izradimo taj zahtjev.

Dvije su stvari koje ćemo prvo morati ispuniti za prvi zahtjev:

  • Vrsta zahtjeva: GET, POST, PUT, itd. - koristit ćemo GET
  • URL zahtjeva: krajnja točka za vaš zahtjev za API - za naš zahtjev koristit ćemo //pokeapi.co/api/v2/pokemon/squirtle/

A nakon što se uvjerite da su točne, možete jednostavno pritisnuti plavi gumb Pošalji s desne strane i uspješno smo postavili prvi zahtjev!

Odmah dobivamo nekoliko stvari koje možemo vidjeti:

  • Tijelo: na dnu bismo sada trebali vidjeti tijelo odgovora na API zahtjev. Za naše Squirtle API, trebamo imati JSON objekt s podacima kao što su abilities, base_experiencei forms.
  • Status: s desne strane trebali bismo vidjeti HTTP statusni kod. "200 Ok" je dobar znak i znači da je bio uspješan!
  • Vrijeme: jednostavno koliko je dugo trajalo da se zahtjev završi
  • Veličina: veličina podataka u odgovoru u KB (u našem primjeru)

Također možete postaviti pokazivač iznad statusa, vremena i veličine i detaljnije proučiti svaku opciju.

Stoga smo uputili prvi zahtjev!

Jedino što treba primijetiti prije nego što krenemo dalje jest da naš zahtjev izgleda kao da je na kartici preglednika. Ako završimo s tim određenim zahtjevom, možemo zatvoriti karticu i kliknuti Spremi kako bismo bili sigurni da su sve naše promjene tu za sljedeći put!

Dio 3: Stvaranje zbirke zahtjeva u Poštaru za PokéAPI

Sad kad smo stvorili zahtjev, kreirajmo njihovu zbirku. Tehnički smo već morali stvoriti novu kolekciju za 2. dio, ali stvorit ćemo novu kako bismo naučili kako same kolekcije rade.

U gornjem lijevom kutu korisničkog sučelja ponovno kliknite narančasti gumb Novo i odaberite Zbirka .

Slično zahtjevu, traži ime, pa nazovimo ovo "PokéAPI". Po želji možete dodati opis, a zatim na dnu kliknuti Stvori .

S lijeve strane vidjet ćete svoju kolekciju. Možete odabrati i proširiti mapu jer ćemo raditi s njom.

Prije nego što dodamo zahtjev, PokéAPI ima različite vrste zahtjeva, pa ga ima smisla organizirati malo temeljitije. Kliknimo dakle tri točke pored PokéAPI kolekcije i odaberite Dodaj mapu .

Slično ostalim, i ovo traži ime. Mape su nekako poput zbirki unutar kolekcije, tako da imate slične mogućnosti. Nazovimo ovog "Pokémon" i kliknite narančasti gumb Spremi kao i prije.

Sad dodajmo naše zahtjeve! Prvo kliknite tri točke pored mape Pokémon, slično kao što smo dodali mapu u zbirku, ali ovaj put odaberite Dodaj zahtjev .

Nazovimo ovaj zahtjev "Pokemon". Iako bi moglo biti zbunjujuće da imamo Pokemon zahtjev unutar mape Pokémon, Pokemon je samo jedna od krajnjih točaka Pokémon grupe.

Sada, upotrijebimo isti API koji smo koristili s našim zahtjevom za Squirtle prije:

  • Vrsta zahtjeva: GET
  • URL zahtjeva: //pokeapi.co/api/v2/pokemon/squirtle/

I slično kao prije, kada pritisnemo plavi gumb Pošalji , trebali bismo vidjeti uspješan zahtjev!

Sad dodajmo još jedan zahtjev. Slijedite isti postupak kao i prije kako biste stvorili novi zahtjev u mapi PokéAPI Pokémon i nazovimo ovaj zahtjev "Sposobnosti".

Ako se pomičete kroz odgovor s prve krajnje točke Squirtle, vidjet ćete puno drugih URL-ova API-ja. Na vrhu imamo abilitiesi imamo dvije različite - "bujicu" i "kišu".

Odaberite svoju omiljenu sposobnost vjeverica i kopirajte urlvrijednost u novi zahtjev za sposobnostima koji smo upravo stvorili, a ja ću ga koristiti rain-dish.

Vrsta zahtjeva možemo ostaviti kao GET, pritisnuti plavi gumb Send i opet možemo vidjeti uspješan odgovor!

Ovdje dobivamo mnogo informacija o našoj sposobnosti vještačenja kiše, a neki detalji dolaze na različitim jezicima, što je super!

Tako sada imamo novu PokéAPI kolekciju s mapom Pokémon koja predstavlja grupu krajnjih točaka API-ja Pokémon, uključujući Pokemone i sposobnosti.

Zaustavit ćemo 3. dio s ta dva zahtjeva, ali slobodno nastavite i dodajte onoliko zahtjeva za PokéAPI koliko želite!

Dio 4: Podnošenje POST zahtjeva poštaru da prevede rečenice kako bi zvučale kao Yoda

Do sada smo upućivali samo GET zahtjeve, ali što ako bismo željeli poslati POST zahtjev tamo gdje zapravo trebamo poslati neke podatke?

Za izradu POST zahtjeva koristit ćemo Yoda Translator API s funtranslations.com. Iako ovaj API uzima samo jedan parametar, to je i dalje dobra javna krajnja točka koju možemo koristiti za razumijevanje koncepta.

Prvo stvorimo novu kolekciju s novim zahtjevom:

  • Zbirka: Zabavni prijevodi
  • Zahtjev: Yoda

Ovaj put, umjesto GET zahtjeva, naša konfiguracija zahtjeva bit će:

  • Vrsta zahtjeva: POST
  • URL zahtjeva: //api.funtranslations.com/translate/yoda

Sada, ako pritisnemo plavi gumb Send , primijetit ćemo da nećemo dobiti uspješan odgovor 200, dobit ćemo 400!

Zapravo nikada nismo postavili nikakve podatke za objavljivanje na API-u i oni zahtijevaju te podatke, pa dodajmo ih.

Odmah ispod URL-a zahtjeva kliknite Body . Zatim umjesto nijednog odaberite sirovo kao vrstu tijela. Napokon, krajnje desno od tipova, promijenite Text u JSON .

Zatim u prostor ispod nje možete dodati sljedeće:

{ "text": "Hello, I am learning how to test APIs with Postman!" } 

A sada ponovo kliknite plavi gumb Pošalji i dobit ćemo uspješan odgovor!

Ovaj koncept možemo primijeniti na gotovo bilo koji API. Poštar vam ne dopušta samo postavljanje JSON-a, već vam omogućuje i upotrebu ostalih formata za koje vidimo da su navedeni u odjeljku Body Type, što znači da imate puno opcija, ovisno o tome što API koji koristite zahtijeva.

Dio 5: Ovjeravanje zahtjeva API-ju za Lord of the Rings pomoću API ključa

Za ostatak koraka koristit ćemo Lord of the Rings API.

Prvo, Lord of the Rings API zahtijeva provjeru autentičnosti kako bi podnosio zahtjeve pomoću API ključa. Dakle, za početak ćete morati prije nego što zaronimo, stvoriti besplatni račun.

//the-one-api.herokuapp.com/sign-up

Jednom kada se prijavite i prijavite, prvo što ćete vidjeti je vaš API ključ! Ili kopirajte ovaj ključ ili se sjetite gdje ga možete pronaći za kasnije. Ako napustite stranicu, uvijek je možete zgrabiti tako da odete do Dobrodošli, a zatim Račun u navigaciji API web stranice.

Za početak, prvo stvorimo novu kolekciju i zahtjev:

  • Zbirka: Gospodar prstenova
  • Mapa: Film
  • Zahtjev: Svi filmovi
  • Vrsta zahtjeva: GET
  • URL zahtjeva: //the-one-api.herokuapp.com/v1/movie

Nakon što podesite gore navedeno, kliknite Pošalji i odmah ćete primijetiti da daje odgovor koji kaže 401 i da nije potvrđen identitet.

Budući da ovaj API zahtijeva API ključ, upravo smo to očekivali. Kliknimo na karticu Autorizacija . Tada možemo odabrati vrstu žetona na donositelja , a s desne strane možemo zalijepiti svoj ključ koji smo upravo postavili s API-jem Gospodara prstenova.

A čim pritisnemo Pošalji , sada vidimo uspješan odgovor!

Ovo je uistinu uspjelo, ali što ako imamo hrpu zahtjeva koji koriste jedan ključ. Moramo li to upravljati na svakom zahtjevu?

Umjesto da upravljamo njime na svakom pojedinačnom zahtjevu, možemo upravljati njime na zbirci. Izgradimo prvo još jedan zahtjev.

U našoj kolekciji Gospodara prstenova i u mapi Movie stvorite novi zahtjev:

  • Zahtjev: Citiranje prema ID-u filma
  • Vrsta zahtjeva: GET
  • URL zahtjeva: //the-one-api.herokuapp.com/v1/movie/{id}

U ovom zahtjevu upotrijebimo ID iz odgovora na prvi zahtjev, koristit ću 5cd95395de30eff6ebccde5bkoji je ID Dvije kule, pa će URL zahtjeva izgledati ovako:

//the-one-api.herokuapp.com/v1/movie/5cd95395de30eff6ebccde5b

Sada, umjesto postavljanja našeg tokena u autorizaciji zahtjeva, tip ćemo ostaviti kao Inherit auth od roditelja . Kliknite tri točke pored zbirke i odaberite Uredi .

Ovdje ćemo napraviti isto ono što smo učinili s prvim zahtjevom, ali na konfiguraciji zbirke. Odaberite karticu Autorizacija , pod vrstom odaberite Tok nositelja i u polje Token ponovo zalijepite svoj žeton.

Napokon, kliknite Ažuriraj i ponovo pritisnite plavi gumb Pošalji i vidjet ćemo uspješan zahtjev!

Sada se možemo vratiti na naš zahtjev za sve filmove i ažurirati autorizaciju tako da koristi vrstu nasljeđivanja od roditelja, a i dalje bi trebao raditi

Što još možemo učiniti s poštarom?

Iako sam pokrio puno osnova, s Poštarom možete učiniti još puno toga. Evo nekoliko mojih najdražih.

Varijable okoline

Ako radite kao programer na projektu, vjerojatno vaš tim koristi više okruženja, poput razvojnog i proizvodnog okruženja. Umjesto stvaranja i održavanja potpuno odvojenih zahtjeva, možete dodati varijablu okruženja i umjesto toga promijeniti tu varijablu prilikom prebacivanja između okolina!

Varijable se primjenjuju na mnoge scenarije, ali to je uobičajena upotreba. Pogledajte poštareve dokumente da biste saznali kako.

//learning.postman.com/docs/postman/variables-and-environments/variables/

Uvoz i izvoz zbirki i podataka

Sjajna stvar kod Poštara je što nakon što sve svoje zahtjeve organizirate, možete ih izvesti kako bi ih drugi mogli koristiti. To također znači da kolekcije možete uvoziti od ostalih članova tima. To mnogo olakšava osiguravanje da svi koriste istu kolekciju.

Bonus: čak možete pohraniti ove datoteke u Git spremište, jer su samo JSON.

Ali imajte na umu - ako koristite autorizaciju na zbirci kao što smo opisali u ovom vodiču, morat ćete biti sigurni da to ne uključujete prilikom izvoza zbirke.

//learning.postman.com/docs/postman/collections/importing-and-exporting-data/

Automatizirano ispitivanje

Jednom kada imate skup zahtjeva u zbirci, pa čak i bolje, ako ih pohranjujete u Github, možete ih početi koristiti kao dio načina upravljanja automatskim testiranjem vašeg API-ja.

Iako postoji nekoliko rješenja za to, Postman uključuje pokretač kolekcije ugrađen točno u aplikaciju, a Newman je alat naredbenog retka koji vam omogućuje pokretanje testova izravno s terminala.

//www.postman.com/use-cases/api-testing-automation/

Koji je vaš omiljeni način testiranja i igranja s API-ima?

Podijelite sa mnom na Twitteru!

Slijedite me za još Javascripta, UX-a i drugih zanimljivosti!

  • ? Slijedite me na Twitteru
  • ? Pretplatite se na moj Youtube
  • Up Prijavite se za moj bilten