Hoe kinne jo CURL brûke om API-fersiken te stjoeren?

Yn dit artikel sille wy beprate hoe't jo curl brûke om ynteraksje te meitsjen mei RESTful API's. curl is in kommando-rigelhulpprogramma dat kin brûkt wurde om fersiken nei in API te stjoeren.

API-oanfragen besteane út fjouwer ferskillende dielen:

  • It einpunt. Dit is de URL wêr't wy fersiken nei stjoere.
  • De HTTP-metoade. De aksje dy't wy útfiere wolle. De meast foarkommende metoaden binne GET POST PUT DELETE en PATCH
  • De kopteksten. De kopteksten dy't wy tegearre mei ús fersyk wolle stjoere, bgl. autorisaasje koptekst.
  • It lichem. De gegevens dy't wy nei de api wolle stjoere.


krul Syntaksis

De syntaksis foar de curl kommando is:


curl [options] [URL...]

De opsjes dy't wy yn dit berjocht behannelje binne:

  • -X of --request - HTTP-metoade te brûken
  • -i of --include - Ynklusyf de antwurdkoppen
  • -d of --data - De te ferstjoeren gegevens nei de API
  • -H of --header - Eltse ekstra kopteksten dy't moatte wurde ferstjoerd


HTTP GET

De GET-metoade wurdt brûkt om helje in boarne fan in server. Yn curl is de GET-metoade de standertmetoade, dat wy hoege dizze net op te jaan.


Foarbyld:

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

KRIJGJE Mei Query Parameters

Wy kinne ek fraachparameters stjoere tegearre mei de curl GET fersyk.

Foarbyld:

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

HTTP POST

De POST-metoade wurdt brûkt om meitsje in boarne op de server.


Om in curl te stjoeren POST-fersyk brûke wy de opsje -X POST.

POST-formuliergegevens

Foarbyld:

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

Standert is curl brûkt Content-Type: application/x-www-form-urlencoded as de Content-Type koptekst, dat wy hoege it net op te jaan by it ferstjoeren fan formuliergegevens.

POST JSON

In JSON te PLAASS troch curl wy moatte de Content-Type opjaan as application/json.


Foarbyld:

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


HTTP PUT

De PUT-metoade wurdt brûkt om update of ferfange in boarne op de server. It ferfangt alle gegevens fan 'e oantsjutte boarne troch de levere fersykgegevens.

Noat:Foar in PUT-fersyk moatte wy alle gegevens yn it fersykorgaan leverje.

Om in curl te stjoeren PUT-fersyk brûke wy de opsje -X PUT.

Foarbyld:


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

It boppesteande PUT-fersyk sil ús earder oanmakke post ferfange troch 'Nije posttitel' en 'Nije postlichaam'.



HTTP PATCH

De PATCH-metoade wurdt brûkt om te meitsjen parsjele updates nei de boarne op de server.

Noat:Foar in PATCH-fersyk hoege wy net alle gegevens te leverjen. Wy stjoere allinich de gegevens dy't wy bywurke wolle.

Om in curl te stjoeren PATCH-fersyk brûke wy de opsje -X PATCH.

Foarbyld:


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

Merken hoe't wy it lichem allinich ferstjoere mei 'Fernijde postynhâld', om't wy in parsjele update dogge.



HTTP WISE

De DELETE-metoade wurdt brûkt om de oantsjutte boarne fan 'e server te ferwiderjen.

Om in curl te stjoeren Wiskje ferwiderje brûke wy de opsje -X DELETE.

curl -X DELETE https://jsonplaceholder.typicode.com/posts/5 Noat:De metoade DELETE hat gjin lichem.

Ferifikaasje

Soms hat in API-einpunt tagong beheind en sil allinich fersiken tsjinje oan ferifieare en autorisearre brûkers. Foar dizze oanfragen moatte wy in tagongstoken leverje yn 'e koptekst fan it fersyk.

Om in curl te stjoeren koptekst, wy brûke: -H opsje.

It folgjende fersyk stjoert POST-fersyk mei in drager token yn 'e koptekst:

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

Konklúzje

Yn dit berjocht learden wy hoe't jo HTTP-fersiken (GET, POST, PUT, PATCH en DELETE) nei in API stjoere kinne mei krulkommando's.