Sådan tester og spiller du med web-API'er på den nemme måde med postbud

I en verden, hvor statiske websteder og apps i stigende grad afhænger af særskilt vedligeholdte API'er, kan det være svært at finde ud af, hvordan de fungerer ved bare at lege rundt i browseren.

Så hvordan kan vi bruge Postman til både at teste vores eksisterende API'er og forstå, hvordan de fungerer?

  • Hvad er postbud?
  • Hvad skal vi bygge / lære?
  • Del 0: Kom i gang med Postman
  • Del 1: En introduktion til Postbrevet
  • Del 2: Oprettelse af en ny postbudspørgsel for at få oplysninger om Squirtle
  • Del 3: Oprettelse af en samling af anmodninger i Postbogen om PokéAPI
  • Del 4: At indgive POST-anmodninger med Postman om at oversætte sætninger til at lyde som Yoda
  • Del 5: Godkendelse af anmodninger til Lord of the Rings API med en API-nøgle

Hvad er postbud?

Postman er et værktøj, som teams kan bruge til pålideligt at teste API'er ved hjælp af brugervenlige konfigurationer. Den leveres med funktioner, du kan forvente, når du beskæftiger dig med API'er, herunder godkendelse, indstilling af overskrifter, tilpasning af nyttelasten og en masse mere, der hjælper med at reducere friktionen ved at bruge en API.

Og det er ikke kun til testning. Skønheden er, at dette kan bruges til mange aspekter ved at arbejde med API'er for mange forskellige medlemmer af teamet. Måske ønsker en projektleder at kontrollere, at ting fungerer, eller måske har det lettere at foretage en ændring direkte med API'en, eller en QA-ingeniør skal sørge for, at alt stadig fungerer, eller en udvikler vil aktivt foretage ændringer, mens han arbejder på selve API'en .

Den bedste del ved det - Postman tilbyder samarbejdsfunktioner. Det gratis niveau inkluderer eksport og import af samlinger af gemte API-anmodninger samt oprettelse af delte links. Hvis du er en del af et hold, har de betalte niveauer, der giver dig mulighed for at synkronisere dine samlinger for at sikre, at alle har den seneste og opdaterede samling.

Hvad skal vi bygge / lære?

Vi vil gennemgå to forskellige eksempler på API'er for at dække begreberne Postman.

Først gennemgår vi nogle enkle HTTP-anmodninger med en offentlig API til Pokémon.

Vi bruger derefter Yoda Translator API til en del for at demonstrere, hvordan man laver specifikke HTTP-anmodninger.

Når vi først har forstået, hvordan det grundlæggende fungerer, bruger vi Lord of the Rings API til at lære, hvordan godkendelse fungerer med API'er. Til dette skal du registrere dig for en gratis konto til en API-nøgle.

Del 0: Kom i gang med Postman

Før vi kommer i gang, skal du have postbud for at følge med i denne gennemgang. Den gode nyhed er, at Postman er tilgængelig gratis på Mac, Windows og Linux, så du skal kunne finde en version, der fungerer for dig.

Hent postbud: //www.postman.com/downloads/

Når du er downloadet, skal du gennemgå standardinstallationsinstruktionerne, åbne den, og vi skal være klar til at gå!

Del 1: En introduktion til Postbrevet

Første gang du åbner Postbud, får du straks vist en startplade med en række muligheder for at komme i gang.

Det kan virke lidt overvældende, men lad os nedbryde nogle af de nøglekoncepter, som vi har brug for at vide.

Anmodninger

En anmodning er sådan, det lyder, det er en specifik API-anmodning. Dette vil være en enkelt type anmodning, uanset om det er en GET eller POST til et bestemt slutpunkt. Du vil gerne oprette nye anmodninger for hver type slutpunkt, som giver dig mulighed for at skifte mellem dem, når du tester.

Samlinger

En samling er en gruppe af anmodninger. Dette er praktisk til at organisere dine anmodninger i forskellige grupper. Dette kan være så simpelt som to helt forskellige API'er (dvs. Twitter vs Slack) eller det kan være to forskellige grupper af API'er til en enkelt API (dvs. Twitter Tweets API vs Twitter Accounts API).

Bemyndigelse

Autorisation er, hvordan anmodninger godkendes med en API, hvad enten det er af en person, der fremsætter en anmodning eller af en computer, der fremsætter anmodningen på dine vegne. Dette kommer ofte i form af en API-nøgle, som kan være en statisk værdi tildelt til din konto eller dynamisk genereret med værktøjer som OAuth.

Miljøer

Miljøer giver dig mulighed for at konfigurere dine slutpunkter til at bruge bestemte variabler, der gør det lettere at bruge de samme slutpunkter mellem forskellige miljøer. For eksempel har du muligvis det samme /profileslutpunkt i både dine produktions- og udviklingsmiljøer, men de har forskellige domæner. Miljøer giver dig mulighed for at administrere en enkelt anmodning med et variabelt domæne.

Arbejdsområder

Vi går ikke for langt ind på arbejdsområder i dette indlæg, men det giver dig mulighed for at administrere og organisere forskellige samlinger. Forestil dig, at hvis du vil bruge Postman til både arbejde og et personligt projekt, har du muligvis et arbejdsområde såvel som et personligt arbejdsområde.

I forbindelse med denne artikel dækker vi anmodninger, samlinger og autorisation.

Del 2: Oprettelse af en ny postbudspørgsel for at få oplysninger om Squirtle

Nu hvor vi har en bedre forståelse af de forskellige terminologier, lad os faktisk oprette en anmodning.

Øverst til venstre i brugergrænsefladen skal du se en men orange knap, der siger Ny . Gå videre og klik på det, og vælg derefter Anmod .

Før vi kommer ind i selve anmodningen, anmoder det om et par ting.

Denne første ting kræver er et navn. Vi starter med at bede om oplysninger om Pokémon Squirtle, så lad os nævne denne "Pokémon - Squirtle".

Det kræver også en samling, så klik på Opret samling, og lad os navngive samlingen "Min favorit Pokémon".

Klik på den orange afkrydsningsfeltknap ved siden af ​​samlingens navn, og tryk derefter på Gem .

På dette tidspunkt har vi en ny anmodning, så lad os bygge den anmodning.

Der er to ting, vi først skal udfylde til vores første anmodning:

  • Anmodningstype: GET, POST, PUT osv. - vi bruger GET
  • URL til anmodning: Slutpunktet for din API-anmodning - til vores anmodning bruger vi //pokeapi.co/api/v2/pokemon/squirtle/

Og når du først er sikker på, at de er korrekte, kan du blot trykke på den blå Send- knap til højre, og vi har med succes fremsat vores første anmodning!

Vi får straks et par ting, vi kan se:

  • Body: nederst skal vi nu se svaret på API-anmodningen. Til vores Squirtle API, bør vi have en JSON objekt med data som abilities, base_experienceog forms.
  • Status: til højre skal vi se HTTP-statuskoden. “200 Ok” er et godt tegn, og det betyder, at det var en succes!
  • Tid: simpelthen hvor lang tid anmodningen tog at afslutte
  • Størrelse: størrelsen i KB (i vores eksempel) af svardataene

Du kan også holde markøren over Status, Tid og Størrelse og se mere detaljeret på hver mulighed.

Så vi fremsatte vores første anmodning!

En gang ting at bemærke, før vi går videre, er, at vores anmodning ser ud til at være i en browserfane. Hvis vi er færdige med den pågældende anmodning, kan vi lukke fanen og klikke på Gem for at sikre, at alle vores ændringer er der til næste gang!

Del 3: Oprettelse af en samling af anmodninger i Postbogen om PokéAPI

Nu hvor vi har oprettet en anmodning, lad os oprette en samling af dem. Teknisk set var vi allerede nødt til at oprette en ny samling til del 2, men vi opretter en ny for at lære, hvordan samlingerne selv fungerer.

Øverst til venstre for brugergrænseflade skal du klikke på den orange Ny knappen igen og vælg Collection .

I lighed med en anmodning beder den om et navn, så lad os kalde dette "PokéAPI". Eventuelt kan du tilføje en beskrivelse og derefter klikke på Opret nederst.

Til venstre ser du nu din samling. Du kan vælge og udvide mappen, da vi arbejder med den.

Før vi tilføjer en anmodning, har PokéAPI forskellige typer anmodninger, så det giver mening at organisere det lidt mere grundigt. Så lad os klikke på de tre prikker ved siden af ​​PokéAPI-samlingen og vælge Tilføj mappe .

I lighed med de andre beder dette om et navn. Mapper er ligesom samlinger inde i en samling, så du får lignende muligheder. Lad os navngive denne "Pokémon" og klikke på den orange Gem- knap som før.

Lad os nu tilføje vores anmodninger! Klik først på de tre prikker ved siden af ​​Pokémon-mappen, svarende til hvordan vi tilføjede en mappe til samlingen, men denne gang skal du vælge Tilføj anmodning .

Lad os kalde denne anmodning "Pokemon". Selvom det måske er forvirrende, at vi har en Pokemon-anmodning inde i Pokémon-mappen, er Pokemon kun et af slutpunkterne for Pokémon-gruppen.

Lad os nu bruge den samme nøjagtige API, som vi brugte med vores Squirtle-anmodning før:

  • Anmodningstype: GET
  • URL til anmodning: //pokeapi.co/api/v2/pokemon/squirtle/

Og ligesom før, når vi trykker på den blå Send- knap, skal vi se en vellykket anmodning!

Lad os nu tilføje endnu en anmodning. Følg den samme proces som før for at oprette en ny anmodning under PokéAPI Pokémon-mappen, og lad os navngive denne anmodning "Evner".

Hvis du ruller gennem svaret fra det første Squirtle-slutpunkt, ser du mange andre API-webadresser. Øverst har vi, abilitiesog vi har to forskellige - “torrent” og “regnskål”.

Vælg din foretrukne Squirtle-evne og kopier urlværdien til den nye Abilities-anmodning, vi lige har oprettet, skal jeg bruge rain-dish.

Vi kan forlade anmodningstypen som GET, trykke på den blå Send- knap, og vi kan igen se et vellykket svar!

Her får vi en masse information om vores Squirtle-evner Rain Dish, og nogle af detaljerne kommer på forskellige sprog, hvilket er sejt!

Så nu har vi en ny PokéAPI-samling med en Pokémon-mappe, der repræsenterer gruppen af ​​Pokémon API-slutpunkter inklusive Pokemon og evner.

Vi stopper del 3 med disse 2 anmodninger, men du er velkommen til at fortsætte og tilføje så mange af PokéAPI-anmodningerne, som du vil!

Del 4: At indgive POST-anmodninger med Postman om at oversætte sætninger til at lyde som Yoda

Indtil videre har vi kun fremsat GET-anmodninger, men hvad hvis vi ville lave en POST-anmodning, hvor vi rent faktisk har brug for at sende nogle data?

For at lave en POST-anmodning skal vi bruge Yoda Translator API fra funtranslations.com. Mens denne API kun tager en enkelt parameter, er det stadig et godt offentligt slutpunkt, som vi kan bruge til at forstå konceptet.

Lad os først oprette en ny samling med en ny anmodning:

  • Samling: Sjove oversættelser
  • Anmodning: Yoda

Denne gang, i stedet for en GET-anmodning, vil vores anmodningskonfiguration være:

  • Anmodningstype: POST
  • Anmod om URL: //api.funtranslations.com/translate/yoda

Denne gang, hvis vi trykker på den blå Send- knap, bemærker vi, at vi ikke får et vellykket 200-svar, vi får en 400!

Vi opretter aldrig nogen data, der skal sendes til API'en, og det kræver disse data, så lad os tilføje det.

Lige under anmodnings-URL'en skal du klikke på Body . Vælg derefter som kropstype i stedet for ingen . Endelig skal du ændre tekst til JSON yderst til højre for typerne .

Derefter kan du tilføje følgende i rummet under det:

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

Og klik nu på den blå Send- knap igen, så får vi et vellykket svar!

Vi kan anvende dette koncept til stort set enhver API. Postbrevet tillader ikke kun dig at sende JSON, det giver dig mulighed for at bruge de andre formater, som vi ser, der er anført i afsnittet Kropstype, hvilket betyder, at du har mange muligheder afhængigt af, hvad den API, du bruger, kræver.

Del 5: Godkendelse af anmodninger til Lord of the Rings API med en API-nøgle

For resten af ​​gennemgangen skal vi bruge Lord of the Rings API.

Først og fremmest kræver Lord of the Rings API godkendelse for at kunne stille anmodninger ved hjælp af en API-nøgle. Så for at starte, skal du oprette en gratis konto, før vi dykker ind.

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

Når du først tilmelder dig og logger ind, er den første ting, du ser, din API-nøgle! Kopier enten denne nøgle ned, eller husk, hvor du kan finde den til senere. Hvis du forlader siden, kan du altid få fat i den ved at navigere til Velkomst og derefter Konto i navigationen på API-webstedet.

For at komme i gang, lad os først oprette en ny samling og anmodning:

  • Samling: Ringenes Herre
  • Mappe: Film
  • Anmodning: Alle film
  • Anmodningstype: GET
  • Anmodnings-URL: //the-one-api.herokuapp.com/v1/movie

Når du er klar med ovenstående, skal du klikke på Send , og du vil straks bemærke, at det giver et svar, der siger 401, og at det ikke er godkendt.

Da denne API kræver API-nøglen, er det præcis, hvad vi forventede. Så lad os klikke på fanen Autorisation . Vi kan så vælge en type af Bærer Token , og til højre, kan vi indsætte i vores nøgle, vi netop oprettet med Lord of the Rings API.

Og så snart vi rammer Send , ser vi nu et vellykket svar!

Dette fungerede rigtig godt, men hvad hvis vi har en masse anmodninger, der bruger en enkelt nøgle. Skal vi klare det på hver anmodning?

I stedet for at administrere det på hver enkelt anmodning kan vi administrere det i samlingen. Lad os først oprette en ny anmodning.

Opret en ny anmodning under vores Lord of the Rings-samlingen og i filmmappen:

  • Anmodning: Citat efter film-id
  • Anmodningstype: GET
  • Anmodnings-URL: // the-one-api.herokuapp.com/v1/movie/{id}

Lad os i denne anmodning bruge et ID fra svaret fra den første anmodning, jeg skal bruge, 5cd95395de30eff6ebccde5bsom er id'et for de to tårne, så anmodnings-URL'en ser ud:

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

Nu, i stedet for at indstille vores token i anmodningen om autorisation, forlader vi typen som Arve godkendelse fra forælder . Klik på de tre prikker ved siden af ​​samlingen, og vælg Rediger .

Her skal vi gøre det samme nøjagtige som vi gjorde med den første anmodning, men på samlingskonfigurationen. Vælg Authorization fanen, under typen vælge Bærer Token og i Token felt igen indsætte din token.

Endelig skal du klikke på Opdater og trykke på den blå Send- knap igen, så kan vi se en vellykket anmodning!

Vi kan nu gå tilbage til vores anmodning om alle film og opdatere autorisationen til at bruge en type arve-godkendelse fra forældrene, og den skal stadig fortsætte med at arbejde!

Hvad kan vi ellers gøre med Postman?

Mens jeg dækkede en masse af det grundlæggende, er der meget mere, du kan gøre med Postman. Her er et par af mine favoritter.

miljøvariabler

Hvis du arbejder som udvikler på et projekt, er det sandsynligt, at dit team bruger flere miljøer, såsom et udviklings- og produktionsmiljø. I stedet for at oprette og vedligeholde helt separate anmodninger kan du tilføje en miljøvariabel og i stedet ændre den variabel, når du skifter mellem miljøer!

Variabler gælder for mange scenarier, men det er en almindelig anvendelse. Se Postmans dokumenter for at lære hvordan.

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

Import og eksport af samlinger og data

En god ting ved Postman er, at når du først har organiseret dine anmodninger, kan du eksportere dem, så andre kan bruge dem. Dette betyder også, at du kan importere samlinger fra andre teammedlemmer. Dette gør det meget nemmere at sikre, at alle bruger den samme samling.

Bonus: du kan endda gemme disse filer i et Git-arkiv, da de bare er JSON.

Men husk - hvis du bruger autorisation til samlingen, som vi gennemgik i denne vejledning, vil du være sikker på, at du ikke inkluderer det, når du eksporterer din samling.

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

Automatiseret test

Når du har et sæt anmodninger i en samling og endnu bedre, hvis du gemmer dem i Github, kan du begynde at bruge disse anmodninger som en del af en måde at administrere automatisk test af din API på.

Mens der er et par løsninger til at gøre dette, inkluderer Postman en Collection runner indbygget i appen, og Newman er et kommandolinjeværktøj, der lader dig køre tests lige fra terminalen.

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

Hvad er din foretrukne måde at teste og lege med API'er på?

Del med mig på Twitter!

Følg mig for mere Javascript, UX og andre interessante ting!

  • ? Følg mig på Twitter
  • ? ️ Abonner på min Youtube
  • ✉️ Tilmeld dig mit nyhedsbrev