Как да използвам CURL за изпращане на заявки за API

В тази статия ще обсъдим как да използваме curl за взаимодействие с RESTful API. curl е помощна програма за команден ред, която може да се използва за изпращане на заявки към API.

Заявките за API се състоят от четири различни части:

  • Крайната точка. Това е URL адресът, до който изпращаме заявки.
  • HTTP методът. Действието, което искаме да извършим. Най-често срещаните методи са GET POST PUT DELETE и PATCH
  • Хедърите. Заглавията, които искаме да изпратим заедно с нашата заявка, напр. заглавие на оторизацията.
  • Тялото. Данните, които искаме да изпратим на API.


синтаксис на къдрене

Синтаксисът на curl командата е:


curl [options] [URL...]

Опциите, които ще разгледаме в тази публикация, са:

  • -X или --request - HTTP метод, който ще се използва
  • -i или --include - Включете отговорите
  • -d или --data - Данните, които трябва да бъдат изпратени до API
  • -H или --header - Всички допълнителни заглавки, които трябва да бъдат изпратени


HTTP ВЗЕМЕТЕ

Методът GET се използва за донеси ресурс от сървър. В curl методът GET е методът по подразбиране, така че не е необходимо да го указваме.


Пример:

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

ВЗЕМЕТЕ С Параметри на заявката

Също така можем да изпращаме параметри на заявката заедно с curl ВЗЕМЕТЕ заявка.

Пример:

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

HTTP POST

Методът POST се използва за създайте ресурс на сървъра.


За да изпратите curl POST заявка използваме опцията -X POST.

Данни за POST формуляр

Пример:

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

По подразбиране, curl използва Content-Type: application/x-www-form-urlencoded като Content-Type заглавка, така че не е необходимо да го посочваме при изпращане на данни от формуляра.

POST JSON

За да публикувате JSON от curl трябва да посочим Content-Type като application/json.


Пример:

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 се използва за актуализиране или замени ресурс на сървъра. Той заменя всички данни от посочения ресурс с предоставените данни за заявка.

Забележка:За заявка за PUT трябва да предоставим всички данни в тялото на заявката.

За да изпратите curl PUT заявка използваме опцията -X PUT.

Пример:


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

Горната заявка PUT ще замени създадената ни по-рано публикация с „Заглавие на нова публикация“ и „Тяло на нова публикация“



HTTP ПАЧ

За направата се използва методът PATCH частични актуализации към ресурса на сървъра.

Забележка:За заявка за PATCH не е необходимо да предоставяме всички данни. Изпращаме само данните, които искаме да бъдат актуализирани.

За да изпратите curl Заявка за PATCH използваме опцията -X PATCH.

Пример:


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

Забележете как изпращаме тялото само с „Актуализирано съдържание на публикация“, тъй като правим частична актуализация.



HTTP ИЗТРИВАНЕ

Методът DELETE се използва за премахване на посочения ресурс от сървъра.

За да изпратите curl ИЗТРИВАНЕ заявка използваме опцията -X DELETE.

curl -X DELETE https://jsonplaceholder.typicode.com/posts/5 Забележка:Методът DELETE няма тяло.

Удостоверяване

Понякога крайната точка на API има ограничен достъп и ще обслужва заявки само за удостоверени и упълномощени потребители. За тези заявки трябва да предоставим маркер за достъп в заглавката на заявката.

За да изпратите curl заглавка, използваме: -H опция.

Следващата заявка изпраща POST заявка с носител в заглавката:

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

Заключение

В тази публикация научихме как да изпращаме HTTP заявки (GET, POST, PUT, PATCH и DELETE) до API с помощта на команди curl.