Интерфейс прикладных программ (API) – это набор определений и протоколов, которые позволяют программным программам взаимодействовать друг с другом.
Термин REST обозначает передачу представительного состояния. Это архитектурный стиль, который состоит из набора ограничений, которые будут использоваться при создании веб-сервисов.
RESTful API – это API, который следует архитектуре REST. Обычно API REST используют протокол HTTP для отправки и извлечения данных и ответы в формате JSON. Вы можете использовать стандартные методы HTTP для создания, просмотра, обновления или удаления ресурсов через API.
Для тестирования и взаимодействия с API RESTful вы можете использовать любую библиотеку или инструмент, который может выполнять HTTP-запросы.
Запросы API состоят из четырех частей:
В этой статье мы собираемся обсудить, как использовать curl для взаимодействия с RESTful API. Команда curl – это утилита командной строки для передачи данных с или на удаленный сервер. Она установлена по умолчанию в macOS и большинстве дистрибутивов Linux.
Синтаксис curlкоманды следующий:
curl [options] [URL...]
Вот параметры, которые мы будем использовать при отправке запросов:
Метод GET запрашивает определенный ресурс с сервера.
GET является методом по умолчанию при создании HTTP-запросов с curl. Вот пример выполнения запроса GET к API JSONPlaceholder к представлению JSON всех сообщений:
curl https://jsonplaceholder.typicode.com/posts
Для фильтрации результатов используйте параметры запроса:
curl https://jsonplaceholder.typicode.com/posts?userId=1
Метод 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
Метод PUT используется для обновления или замены ресурса на сервере. Он заменяет все данные указанного ресурса данными запроса.
curl -X PUT -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts/5
Метод PUT используется для частичного обновления ресурса на сервере.
curl -X PUT -d "title=Hello Universe" https://jsonplaceholder.typicode.com/posts/5
Метод DELETE удаляет указанный ресурс с сервера.
curl -X DELETE https://jsonplaceholder.typicode.com/posts/5
Если конечная точка API требует аутентификации, вам необходимо получить ключ доступа. В противном случае сервер API ответит сообщением «Access Forbidden» или «Unauthorized».
Процесс получения ключа доступа зависит от используемого вами API. Получив токен доступа, вы можете отправить его в шапку:
curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"
Мы показали вам, как использовать curl для выполнения тестовых запросов API.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.