Введение
Интерфейс прикладных программ (API) — это набор определений и протоколов, который позволяет программам взаимодействовать друг с другом.
Термин REST означает передачу репрезентативного состояния. Это архитектурный стиль, состоящий из ряда ограничений, используемых при создании веб-сервисов.
RESTful API — это API, который соответствует архитектуре REST. REST API обычно используют протокол HTTP для отправки и получения данных и ответов в формате JSON. Вы можете использовать стандартные методы HTTP для создания, просмотра, обновления или удаления ресурсов через API.
Для тестирования и взаимодействия с RESTful API вы можете использовать любую библиотеку или инструмент, способный выполнять HTTP-запросы.
Запросы API состоят из четырех разных частей:
- Конечная точка. Это URL-адрес, используемый клиентом для связи с сервером.
- Метод HTTP сообщает серверу, какое действие хочет выполнить клиент. Наиболее распространенными методами являются
GET
POST
PUT
DELETE
иPATCH
. - Заголовки. Используется для передачи дополнительной информации между сервером и клиентом, такой как авторизация.
- Тело (тело). Данные отправлены на сервер.
В этой статье мы обсудим, как использоватьcurl
для взаимодействия с RESTful API. curl
— это утилита командной строки для передачи данных на удаленный сервер или с него. Он установлен по умолчанию в macOS и большинстве дистрибутивов Linux.
Варианты завивки
Синтаксис команды curl
следующий:
curl [options] [URL...]
Вот параметры, которые мы будем использовать для отправки запросов:
-X
,--request
— используемый HTTP-метод.-i
,--include
— включить заголовки ответов.-d
,--data
— данные для отправки.-H
,--header
— Дополнительный заголовок для отправки.
HTTP ПОЛУЧИТЬ
Метод GET запрашивает определенный ресурс с сервера.
GET — это метод по умолчанию при выполнении HTTP-запросов с помощью curl
. Вот пример того, как сделать запрос GET к JSONPlaceholder API для JSON-представления всех сообщений:
curl https://jsonplaceholder.typicode.com/posts
Для фильтрации результатов используйте параметры запроса:
curl https://jsonplaceholder.typicode.com/posts?userId=1
HTTP-ПОСТ
Метод POST используется для создания ресурса на сервере. Если ресурс существует, он перезаписывается.
Следующая команда создаст новый пост, используя данные, указанные с параметром -d
:
curl -X POST -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts
Тип тела запроса указывается с помощью заголовка Content-Type
. По умолчанию, когда этот заголовок не указан, curl
использует Content-Type: application/x-www-form-urlencoded
Чтобы отправлять данные в формате JSON, установите тип тела в application/json
:
curl -X POST -H "Content-Type: application/json" -d '{"userId": 5, "title": "Hello World", "body": "Post body."}' https://jsonplaceholder.typicode.com/posts
HTTP ПОЛОЖИТЬ
Метод PUT используется для обновления или замены ресурса на сервере. Заменяет все данные из указанного ресурса данными из запроса.
curl -X PUT -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts/5
HTTP-патч
Метод PUT используется для частичного обновления ресурса на сервере.
curl -X PATCH -d "title=Hello Universe" https://jsonplaceholder.typicode.com/posts/5
HTTP УДАЛИТЬ
Метод DELETE удаляет указанный ресурс с сервера.
curl -X DELETE https://jsonplaceholder.typicode.com/posts/5
Аутентификация
Если конечная точка API требует аутентификации, необходимо получить ключ доступа. В противном случае сервер API ответит ответным сообщением «Доступ запрещен» или «Не авторизован».
Процесс получения ключа доступа зависит от используемого вами API. Получив токен доступа, вы можете ввести его в заголовок:
curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"
Вывод
Мы показали вам, как использовать curl
для выполнения тестовых запросов API. Для получения дополнительной информации о curl
посетите страницу документации Curl.