В хороший день я могу согнуть 20 фунтов… дважды. Наверное. Но мы говорим не о таком керлинге!

Curl (или cURL), с другой стороны, представляет собой небольшой, но мощный инструмент для передачи файлов и данных по URL-адресам. В меньшем масштабе он отлично подходит для тестирования REST API. И хотя большинство веб-разработчиков могут предпочесть использовать другие инструменты, такие как Почтальон от Google, cURL выполняется в командной строке и может заставить вас почувствовать себя настоящим компьютерным хакером с навыками Дэвида Лайтмана (для вас, поклонников Военных игр ).

CURL означает клиент и URL, поскольку это программа, выполняемая на стороне клиента, которая выполняет HTTP-запросы к URL-адресам. Поскольку это открытый исходный код, вы можете скачать его здесь. Или, если на вашем компьютере уже установлен Gitbash, он включается автоматически.

Для целей этого краткого вступления нам понадобится сервер, который позволит нам делать запросы, и, похоже, JSON Placeholder хорошо соответствует нашим потребностям. Это поддельный REST API, который, несмотря на то, что наши запросы фактически не изменяют базу данных сервера, все равно дает нам соответствующий ответ. Так что давай, взломай эту консоль и приступим к взлому!

Получить

Для начала попробуем выполнить простой HTTP-запрос на получение. Прокрутите вниз до раздела «Ресурсы» в заполнителе JSON и давайте посмотрим, какие типы объектов мы можем отправлять запросы.

Отлично! Мы можем вызвать эти объекты, добавив «/», а затем желаемый объект в URL-адресе. Число в правой части строки говорит нам, сколько товаров мы вернем по этому запросу. Для начала обратимся к некоторым пользователям. Введите в консоль следующую строку:

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

Вы должны увидеть все десять пользователей, которых нам обещали как объекты JSON. Но, может быть, мне просто нужен пятый пользователь. Мы добавим «/ 5» после URL-адреса, чтобы получить пользователя с идентификатором. из 5.

curl https://jsonplaceholder.typicode.com/users/5

Мы видим объект JSON для пятого пользователя. Отлично, попробуем разместить пользователя на сервере.

Опубликовать

«Публикация» - это процесс отправки данных на сервер и их сохранения в базе данных. Чтобы сделать это с помощью cURL, давайте посмотрим на его варианты. Тип:

curl --help

и вы должны получить кучу интересных опций, которые мы можем использовать в терминале:

Для наших целей вариант -d или - -data подойдет лучше всего. Если мы посмотрим на домашнюю страницу заполнителя в разделе Маршруты, он говорит нам, что мы можем отправить запрос на публикацию на https://jsonplaceholder.typicode.com/posts. Имея эту информацию, мы опубликуем наш собственный объект через консоль:

curl -d "title=Greatest Post Ever Written&body=Body of the Greatest post ever written" https://jsonplaceholder.typicode.com/posts

Теперь вы увидите, что сообщение «создается» в базе данных, и у него есть идентификатор. из 101.

Обновить

Иногда нам нужно изменить объекты в db. Мы можем только изменить то, что уже было сохранено в базе данных, и, поскольку это поддельный REST API, наш пост на самом деле не был сохранен. Итак, давайте обновим существующий пост. Как насчет 56-го. Тип:

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

И вы увидите:

Он сохранен с каким-то напуганным текстом Lorem Ipsum, который нам, вероятно, следует изменить на что-нибудь понятное. Здесь нам понадобятся еще несколько параметров нашей команды. Во-первых, нам нужно сообщить cURL, что это запрос на размещение. Итак, когда мы просматриваем нашу опцию - -help, кажется, что мы могли бы использовать -X, чтобы указать cURL, что мы хотим использовать команду PUT.

Тогда мы по-прежнему хотим использовать параметр «-d» для новых данных, которые мы собираемся использовать. Соберем все воедино. Тип:

curl -X PUT -d "title=This is a new title" https://jsonplaceholder.typicode.com/posts/56

И вот так мы изменили заголовок поста на I.D. из 56 к тому, что мы хотели.

УДАЛИТЬ

А теперь мы подошли к удалению. Ах, удаление. Если ничего не помогает, уничтожьте все! Мы собираемся увидеть часть того же кода, который мы видели в команде PUT, но все, что нам нужно, это передать cURL запрос DELETE и URL-адрес публикации, которую мы должны удалить.

curl -X DELETE https://jsonplaceholder.typicode.com/posts/56

Обратите внимание, что вы ничего не получаете взамен, кроме новой строки. Возможно, на некоторых консолях вы увидите пустой хеш («{}»). Это означает, что возвращать нечего, потому что он был удален.

Подведение итогов

Мы коснулись только некоторых команд cURL на очень поверхностном уровне. Это удобный инструмент, который может быть полезен при работе над полнофункциональной интеграцией API в вашем приложении. Я бы посоветовал посмотреть руководство для дальнейшего чтения и поиграть с различными вариантами, чтобы увидеть, что может соответствовать вашим потребностям.