Sådan bruges CURL til at sende API-anmodninger

I denne artikel skal vi diskutere, hvordan man bruger curl at interagere med RESTful API'er. curl er et kommandolinjeværktøj, der kan bruges til at sende anmodninger til en API.

API-anmodninger består af fire forskellige dele:

  • Slutpunktet. Dette er den URL, som vi sender anmodninger til.
  • HTTP-metoden. Den handling, vi vil udføre. De mest almindelige metoder er GET POST PUT DELETE og PATCH
  • Overskrifterne. Overskrifterne, som vi vil sende sammen med vores anmodning, f.eks. autorisationsoverskrift.
  • Kroppen. De data, vi vil sende til API'en.


krølle Syntaks

Syntaksen for curl kommando er:


curl [options] [URL...]

De muligheder, vi vil dække i dette indlæg, er:

  • -X eller --request - HTTP-metode, der skal bruges
  • -i eller --include - Inkluder svaroverskrifterne
  • -d eller --data - De data, der skal sendes til API'en
  • -H eller --header - Eventuelle yderligere overskrifter, der skal sendes


HTTP FÅ

GET-metoden bruges til hente en ressource fra en server. I curl er GET-metoden standardmetoden, så vi behøver ikke at specificere den.


Eksempel:

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

FÅ med forespørgselsparametre

Vi kan også sende forespørgselsparametre sammen med curl FÅ anmodning.

Eksempel:

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

HTTP POST

POST-metoden bruges til skab en ressource på serveren.


For at sende et curl POST-anmodning bruger vi muligheden -X POST.

POST-formulardata

Eksempel:

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

Som standard curl bruger Content-Type: application/x-www-form-urlencoded som Content-Type header, så vi behøver ikke at specificere det, når vi sender formulardata.

POST JSON

For at POSTE en JSON af curl vi skal specificere Content-Type som application/json.


Eksempel:

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-metoden bruges til opdatering eller erstatte en ressource på serveren. Det erstatter alle data for den angivne ressource med de leverede anmodningsdata.

Bemærk:For en PUT-anmodning skal vi levere alle data i anmodningsorganet.

For at sende et curl PUT-anmodning bruger vi indstillingen -X PUT.

Eksempel:


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

Ovenstående PUT-anmodning erstatter vores tidligere oprettede indlæg med “Ny posttitel” og “Ny posttekst”.



HTTP PATCH

PATCH-metoden bruges til at fremstille delvise opdateringer til ressourcen på serveren.

Bemærk:For en PATCH-anmodning behøver vi ikke levere alle data. Vi sender kun de data, vi ønsker opdateret.

For at sende et curl PATCH-anmodning bruger vi indstillingen -X PATCH.

Eksempel:


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

Læg mærke til, hvordan vi kun sender kroppen med 'Opdateret indlægsindhold', da vi foretager en delvis opdatering.



HTTP SLET

DELETE-metoden bruges til at fjerne den angivne ressource fra serveren.

For at sende et curl SLET anmodning, vi bruger indstillingen -X DELETE.

curl -X DELETE https://jsonplaceholder.typicode.com/posts/5 Bemærk:DELETE-metoden har ingen krop.

Godkendelse

Nogle gange har et API-slutpunkt begrænset adgang og serverer kun anmodninger til godkendte og autoriserede brugere. For disse anmodninger skal vi give et adgangstoken i anmodningens overskrift.

For at sende et curl header, vi bruger: -H mulighed.

Følgende anmodning sender POST-anmodning med et bærertoken i overskriften:

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

Konklusion

I dette indlæg lærte vi, hvordan man sender HTTP-anmodninger (GET, POST, PUT, PATCH og SLET) til en API ved hjælp af curl-kommandoer.