Как использовать CURL для отправки запросов API

В этой статье мы обсудим, как использовать curl для взаимодействия с RESTful API. curl - это утилита командной строки, которую можно использовать для отправки запросов к API.

Запросы API состоят из четырех разных частей:

  • Конечная точка. Это URL-адрес, на который мы отправляем запросы.
  • Метод HTTP. Действие, которое мы хотим выполнить. Наиболее распространенные методы: GET POST PUT DELETE и PATCH
  • Заголовки. Заголовки, которые мы хотим отправить вместе с нашим запросом, например заголовок авторизации.
  • Тело. Данные, которые мы хотим отправить в api.


curl Синтаксис

Синтаксис для curl команда:


curl [options] [URL...]

В этом посте мы рассмотрим следующие варианты:

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


HTTP GET

Метод 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 заголовок, поэтому нам не нужно указывать его при отправке данных формы.

ЗАПИСАТЬ 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 В запросе DELETE мы используем опцию -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.