Kuinka käyttää CURL: ää API-pyyntöjen lähettämiseen

Tässä artikkelissa keskustelemme curl -sovelluksen käytöstä vuorovaikutuksessa RESTful-sovellusliittymien kanssa. curl on komentorivin apuohjelma, jota voidaan käyttää pyyntöjen lähettämiseen API: lle.

API-pyynnöt koostuvat neljästä eri osasta:

  • Päätepiste. Tämä on URL-osoite, jolle lähetämme pyyntöjä.
  • HTTP-menetelmä. Toiminta, jonka haluamme suorittaa. Yleisimmät menetelmät ovat GET POST PUT DELETE ja PATCH
  • Otsikot. Otsikot, jotka haluamme lähettää pyynnön mukana, esim. käyttöoikeuksien otsikko.
  • Vartalo. Tiedot, jotka haluamme lähettää api: lle.


käpristää syntaksia

curl -Syntaksi komento on:


curl [options] [URL...]

Tässä viestissä käsittelemämme vaihtoehdot ovat:

  • -X tai --request - Käytettävä HTTP-menetelmä
  • -i tai --include - Sisällytä vastausotsikot
  • -d tai --data - API: lle lähetettävät tiedot
  • -H tai --header - lähetettävät ylätunnisteet


HTTP GET

GET-menetelmää käytetään hae resurssi palvelimelta. Kohdassa curl GET-menetelmä on oletusmenetelmä, joten sitä ei tarvitse määrittää.


Esimerkki:

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

GET kyselyparametreilla

Voimme myös lähettää kyselyparametreja curl: n kanssa GET-pyyntö.

Esimerkki:

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

HTTP POST

POST-menetelmää käytetään luoda palvelimen resurssi.


Lähetä curl POST-pyynnössä käytämme vaihtoehtoa -X POST.

POST-lomaketiedot

Esimerkki:

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

Oletuksena curl käyttää Content-Type: application/x-www-form-urlencoded kuten Content-Type otsikkoa, joten sitä ei tarvitse määrittää, kun lähetämme lomaketietoja.

POST JSON

JSON: N POSTITTAMISEKSI curl meidän on määritettävä Content-Type nimellä application/json.


Esimerkki:

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


HTTP PUT

PUT-menetelmää käytetään päivittää tai korvata palvelimen resurssi. Se korvaa kaikki määritetyn resurssin tiedot toimitetuilla pyyntötiedoilla.

merkintä:PUT-pyyntöä varten meidän on toimitettava kaikki tiedot pyynnön rungossa.

Lähetä curl PUT-pyynnössä käytämme vaihtoehtoa -X PUT.

Esimerkki:


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

Yllä oleva PUT-pyyntö korvaa aiemmin luodun viestimme nimillä 'Uusi viestin otsikko' ja 'Uusi postin runko'.



HTTP-PATCH

Valmistamiseen käytetään PATCH-menetelmää osittaiset päivitykset palvelimen resurssille.

merkintä:PATCH-pyyntöä varten meidän ei tarvitse antaa kaikkia tietoja. Lähetämme vain tiedot, jotka haluamme päivittää.

Lähetä curl PATCH-pyyntö käytämme vaihtoehtoa -X PATCH.

Esimerkki:


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

Huomaa, kuinka lähetämme tekstiosaa vain päivitetyllä postisisällöllä, kun teemme osittaista päivitystä.



HTTP POISTA

DELETE-menetelmää käytetään määritetyn resurssin poistamiseen palvelimelta.

Lähetä curl POISTA pyyntö käytämme vaihtoehtoa -X DELETE.

curl -X DELETE https://jsonplaceholder.typicode.com/posts/5 merkintä:DELETE-menetelmällä ei ole runkoa.

Todennus

Joskus API-päätepisteellä on rajoitettu pääsy ja se palvelee pyyntöjä vain todennetuille ja valtuutetuille käyttäjille. Näitä pyyntöjä varten meidän on annettava käyttöoikeustunnus pyynnön otsikossa.

Lähetä curl otsikko, käytämme: -H vaihtoehto.

Seuraava pyyntö lähettää POST-pyynnön siirtotunnuksella otsikossa:

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!' }'

Johtopäätös

Tässä viestissä opimme, kuinka lähetetään HTTP-pyynnöt (GET, POST, PUT, PATCH ja DELETE) API: lle käpristyskomennoilla.