Com s'utilitza CURL per enviar sol·licituds d'API

En aquest article, parlarem de com utilitzar curl per interactuar amb les API RESTful. curl és una utilitat de línia d'ordres que es pot utilitzar per enviar sol·licituds a una API.

Les sol·licituds d'API es componen de quatre parts diferents:

  • El punt final. Aquest és l’URL al qual enviem les sol·licituds.
  • El mètode HTTP. L’acció que volem realitzar. Els mètodes més habituals són GET POST PUT DELETE i PATCH
  • Les capçaleres. Les capçaleres que volem enviar junt amb la nostra sol·licitud, p. capçalera d’autorització.
  • El cos. Les dades que volem enviar a l’API.


rínxol Sintaxi

La sintaxi per a curl l'ordre és:


curl [options] [URL...]

Les opcions que tractarem en aquest post són:

  • -X o --request - Mètode HTTP que s’ha d’utilitzar
  • -i o --include - Incloeu les capçaleres de resposta
  • -d o --data - Les dades que s’enviaran a l’API
  • -H o --header - Qualsevol capçalera addicional que cal enviar


HTTP GET

S’utilitza el mètode GET buscar un recurs d'un servidor. A curl, el mètode GET és el mètode predeterminat, de manera que no cal especificar-lo.


Exemple:

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

OBTENIU AMB Paràmetres de consulta

També podem enviar paràmetres de consulta juntament amb el curl Sol·licitud GET.

Exemple:

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

POST HTTP

S’utilitza el mètode POST crear un recurs al servidor.


Per enviar un curl Sol·licitud POST utilitzem l'opció -X POST.

Dades del formulari POST

Exemple:

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

Per defecte, curl utilitza Content-Type: application/x-www-form-urlencoded com el Content-Type capçalera, de manera que no cal especificar-la a l’hora d’enviar les dades del formulari.

POST JSON

Per POSTAR un JSON per curl hem d’especificar el Content-Type com application/json.


Exemple:

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


PUT HTTP

S’utilitza el mètode PUT actualització o bé substituir un recurs al servidor. Substitueix totes les dades del recurs especificat per les dades de sol·licituds subministrades.

Nota:Per a una sol·licitud PUT, hem de proporcionar totes les dades al cos de la sol·licitud.

Per enviar un curl Sol·licitud PUT fem servir l'opció -X PUT.

Exemple:


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

La sol·licitud PUT anterior substituirà la nostra publicació creada anteriorment per 'Títol de publicació nova' i 'Cos de publicació nova'.



PATCH HTTP

S’utilitza el mètode PATCH per fer actualitzacions parcials al recurs del servidor.

Nota:Per a una sol·licitud de PATCH, no hem de proporcionar totes les dades. Només enviem les dades que volem actualitzar.

Per enviar un curl Sol·licitud de PATCH utilitzem l'opció -X PATCH.

Exemple:


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

Tingueu en compte que només estem enviant el cos amb 'Contingut publicat actualitzat', ja que estem fent una actualització parcial.



HTTP BORRAR

El mètode DELETE s’utilitza per eliminar el recurs especificat del servidor.

Per enviar un curl SOL·LICITA la sol·licitud que fem servir l'opció -X DELETE.

curl -X DELETE https://jsonplaceholder.typicode.com/posts/5 Nota:El mètode DELETE no té cap cos.

Autenticació

De vegades, un punt final de l’API té accés restringit i només atén les sol·licituds a usuaris autenticats i autoritzats. Per a aquestes sol·licituds, hem de proporcionar un testimoni d’accés a la capçalera de la sol·licitud.

Per enviar un curl capçalera, fem servir: -H opció.

La sol·licitud següent envia la sol·licitud POST amb un testimoni de portador a la capçalera:

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

Conclusió

En aquesta publicació hem après a enviar sol·licituds HTTP (GET, POST, PUT, PATCH i DELETE) a una API mitjançant ordres curl.