Использование Curl для выполнения запросов REST API

Curl Rest API

Интерфейс прикладных программ (API) — это набор определений и протоколов, позволяющий программам взаимодействовать друг с другом.

Термин REST расшифровывается как «representational state transfer» (передача репрезентативного состояния). Это архитектурный стиль, представляющий собой набор ограничений, которые следует использовать при создании веб-сервисов.

RESTful API — это API, основанный на архитектуре REST. Обычно REST API используют протокол HTTP для отправки и получения данных и ответов в формате JSON. Для создания, просмотра, обновления и удаления ресурсов через API можно использовать стандартные HTTP-методы.

Для тестирования и взаимодействия с 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 запрашивает определенный ресурс с сервера.

GET — метод по умолчанию при создании HTTP-запросов с помощью curl . Вот пример GET-запроса к API JSONPlaceholder для получения JSON-представления всех записей:

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

Для фильтрации результатов используйте параметры запроса:

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

HTTP POST

Метод POST используется для создания ресурса на сервере. Если ресурс существует, он переопределяется.

Следующая команда выполняет запрос 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 PUT -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 .

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

curl -терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *