Kako koristiti CURL za slanje zahtjeva za API

U ovom ćemo članku razgovarati o načinu upotrebe curl za interakciju s RESTful API-ima. curl je uslužni program naredbenog retka koji se može koristiti za slanje zahtjeva API-ju.

Zahtjevi za API sastoje se od četiri različita dijela:

  • Krajnja točka. Ovo je URL na koji šaljemo zahtjeve.
  • HTTP metoda. Radnja koju želimo izvršiti. Najčešće metode su GET POST PUT DELETE i PATCH
  • Zaglavlja. Zaglavlja koja želimo poslati zajedno s našim zahtjevom, npr. zaglavlje autorizacije.
  • Tijelo. Podaci koje želimo poslati api-u.

sintaksa uvijanja

Sintaksa za curl naredba je:

curl [options] [URL...]

Opcije koje ćemo pokriti u ovom postu su:

  • -X ili --request - HTTP metoda koja će se koristiti
  • -i ili --include - Uključite zaglavlja odgovora
  • -d ili --data - Podaci koji se šalju API-ju
  • -H ili --header - Sva dodatna zaglavlja koja treba poslati

HTTP GET

GET metoda se koristi za donijeti resurs s poslužitelja. U curl GET metoda zadana je metoda, pa je ne trebamo navesti.

Primjer:



curl https://jsonplaceholder.typicode.com/posts

GET s parametrima upita

Također možemo poslati parametre upita zajedno s curl GET zahtjev.

Primjer:

curl https://jsonplaceholder.typicode.com/posts?userId=5

HTTP POST

POST metoda se koristi za stvoriti resurs na poslužitelju.

Za slanje curl POST zahtjev koristimo opciju -X POST.

Podaci obrasca POST

Primjer:

curl -X POST -d 'userId=5&title=Post Title&body=Post content.' https://jsonplaceholder.typicode.com/posts

Prema zadanim postavkama, curl koristi Content-Type: application/x-www-form-urlencoded kao Content-Type zaglavlje, tako da ga ne trebamo navesti prilikom slanja podataka obrasca.

OBJAVI JSON

DA OBJAVI JSON do curl moramo navesti Content-Type kao application/json.

Primjer:

curl -X POST -H 'Content-Type: application/json'
-d '{'userId': 5, 'title': 'Post Title', 'body': 'Post content.'}'
https://jsonplaceholder.typicode.com/posts

HTTP PUT

Metoda PUT koristi se za ažuriranje ili zamijeniti resurs na poslužitelju. Zamjenjuje sve podatke navedenog resursa s dostavljenim podacima zahtjeva.

Bilješka:Za zahtjev za PUT, moramo dostaviti sve podatke u tijelu zahtjeva.

Za slanje curl PUT zahtjev koristimo opciju -X PUT.

Primjer:

curl -X PUT -H 'Content-Type: application/json'
-d '{'userId': 5, 'title': 'New Post Title', 'body': 'New post content.'}'
https://jsonplaceholder.typicode.com/posts/5

Gornji zahtjev za PUT zamijenit će naš prethodno stvoreni post s 'Naslov novog posta' i 'Novo tijelo posta'.

HTTP PATCH

Za izradu se koristi metoda PATCH djelomična ažuriranja do resursa na poslužitelju.

Bilješka:Za zahtjev za PATCH ne moramo pružiti sve podatke. Šaljemo samo podatke koje želimo ažurirati.

Za slanje curl PATCH zahtjev koristimo opciju -X PATCH.

Primjer:

curl -X PATCH -H 'Content-Type: application/json'
-d '{'userId': 5, 'body': 'Updated post content.'}'
https://jsonplaceholder.typicode.com/posts/5

Primijetite kako tijelu šaljemo samo 'Ažurirani sadržaj posta' jer vršimo djelomično ažuriranje.

IZBRIŠI HTTP

Metoda DELETE koristi se za uklanjanje navedenog resursa s poslužitelja.

Za slanje curl IZBRIŠI zahtjev koristimo opciju -X DELETE.

curl -X DELETE https://jsonplaceholder.typicode.com/posts/5 Bilješka:Metoda DELETE nema tijelo.

Ovjera

Ponekad API krajnja točka ima ograničen pristup i služit će zahtjevima samo provjerenim i ovlaštenim korisnicima. Za ove zahtjeve moramo osigurati pristupni token u zaglavlju zahtjeva.

Za slanje curl zaglavlje, koristimo: -H opcija.

Sljedeći zahtjev šalje POST zahtjev s tokenom nositelja u zaglavlju:

curl -X POST https://some-web-url/api/v1/users -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'Authorization: Bearer {ACCESS_TOKEN}' -H 'cache-control: no-cache' -d '{ 'username' : 'myusername', 'email' : 'myusername@gmail.com', 'password' : 'Passw0rd123!' }'

Zaključak

U ovom postu naučili smo kako HTTP zahtjeve (GET, POST, PUT, PATCH i DELETE) poslati API-ju pomoću naredbi curl.