Как отправить curl запрос через postman
Перейти к содержимому

Как отправить curl запрос через postman

  • автор:

Name already in use

learnapidoc-ru / like-developer / use-methods-with-curl.md

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink
  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents

Copy raw contents

Copy raw contents

Практическое занятие: Используем методы при помощи curl

Наш пример API прогноза погоды не позволяет использовать что-либо, кроме метода GET, поэтому для этого упражнения, чтобы использовать другие методы с curl, мы будем использовать API-интерфейс petstore. На самом деле мы не будем использовать интерфейс Swagger (о чем мы поговорим позже), на данный момент нам просто нужен API, с помощью которого мы можем создавать, обновлять и удалять контент.

В этом примере с помощью Petstore API мы создадим нового питомца, обновим его, получим id питомца, удалим его, а затем попытаемся получить удаленного питомца.

Для создания своего питомца, мы должны передать сообщение в формате JSON в теле запроса. Вместо того, чтобы пытаться кодировать JSON и передавать его в URL, мы сохраним JSON в файле и будем ссылаться на него.

Многие API требуют публикации запросов, содержащих сообщения JSON в теле. Параметры тела запроса часто зависят от настроек вашего сервиса. Список пар ключ-значение JSON, которые принимает API, называется «Модель» на дисплее интерфейса Swagger.

  1. Создаем текстовый файл и пишем в нем следующий код (эта информация будет передана в параметре -d curl запроса):
  1. Изменим значение в первом id и поменяем кличку с «fluffy» на какое-нибудь другое

Лучше использовать уникальный id и такую кличку, которую вряд ли кто придумает. Также не стоит начинать id с «0».

Сохраняем наш файл в формате .json в каталоге, к которому можно легко получить доступ с терминала, например, в пользовательском каталоге (на Mac, Users / YOURUSERNAME — заменяем YOURUSERNAME реальным именем пользователя на вашем компьютере).

В Терминале /командной строке переходим в каталог с сохраненным файлом.

Для перехода по каталогам:

  • На MacOS находим свой текущий рабочий каталог, набрав pwd . Переход на уровень выше при помощи команды cd ../ . Переход на уровень ниже при помощи команды cd pets , где pets — это имя каталога, в который нужно попасть. Вводим ls , чтобы просмотреть содержимое каталога.
  • На Windows смотрим в строку пути, чтобы понять в какой директории находимся. Переход на уровень выше при помощи команды cd ../ . Переход на уровень ниже при помощи команды cd pets , где pets — это имя каталога, в который нужно попасть. Вводим dir чтобы посмотреть список директорий в текущей директории.
  1. После того, как вы перешли в Терминале/командной строке в каталог с сохраненным JSON файлом, создаем нашего питомца следующим curl запросом:

Content-Type указывает тип контента, представленного в теле запроса. Accept указывает тип контента, который мы примем в ответе.

Ответ будет выглядеть примерно так:

Проверьте, что в ответе кличка именно вашего питомца.

Не стесняйтесь выполнить этот же запрос несколько раз. REST API являются «идемпотентными», что означает, что выполнение одного и того же запроса более одного раза не приведет к дублированию результатов (мы просто создаем одного питомца, а не нескольких питомцев). Тодд Фредрих объясняет идемпотентность, сравнивая ее с беременной коровой. Допустим, вы привели быка, чтобы забеременеть. Даже если бык и корова спариваются несколько раз, результатом будет всего одна беременность, а не беременность для каждого сеанса спаривания.

А что если питомец не любит свое имя?

Изменим ему имя на другое используя метод обновления.

В файле .json сданными питомца изменим его имя/

Вместо метода POST используем метод PUT для обновления имени (в остальном запрос не меняется):

В ответе будет новое имя питомца.

Получение имени питомца при помощи ID

Теперь узнаем имя питомца, передав его ID в конечную точку /pet/:

В файле .json скопируем значение id питомца.

В команде curl заменим 51231236 на id своего питомца и узнаем информацию о нем:

В ответе будет информация о нашем питомце:

Можно отформатировать JSON, вставив его в инструмент форматирования JSON

«Извини, сынок, собака была бешеной, пришлось пристрелить» (© «Маска» фильм, 1994)

  1. Для удаления питомца используем метод DELETE. В примере ниже меняем 5123123 на id своего питомца:

Теперь проверим, получилось удалить питомца. Используем метод GET в этой же команде

Ответ будет примерно таким:

Этот пример позволил нам увидеть, как можно работать с curl для создания, чтения, обновления и удаления ресурсов. Эти четыре операции называются CRUD и являются общими почти для каждого языка программирования.

Хотя Postman, вероятно, проще в использовании, curl используется на уровне мощности. Команды тестирования часто создают сложные тестовые сценарии, которые повторяют множество запросов curl.

Импорт curl в Postman

Можно импортировать команды curl в Postman выполняя следующее:

Открываем новую вкладку в Postman и нажимаем Import в левом верхнем углу.

В диалоговом окне выбираем вкладку «Paste Raw Text» и вводим команду:

Указываем свой Id питомца и проверяем, что нет лишних пробелов.

import

Нажимаем на кнопку Import

Закрываем диалоговое окно, если не закрылось автоматически.

Нажимаем кнопку Send (Если питомец был удален, то будет выдана ошибка «Pet not found»)

Экспорт Postman в curl

Можно экспортировать Postman в curl, выполнив следующие действия:

При желании выбираем один из наших запросов API OpenWeatherMap в Postman.

Нажимаем кнопку Code

Выбираем curl в выпадающем списке.

Копируем отрывок кода

Вы можете видеть, что Postman добавляет дополнительную информацию заголовка ( -H ‘Postman-Token: de0da6b7-1dbc-44d6-acc1-9741f05a7bf1’ \ -H ‘cache-control: no-cache’ ) в запрос. Эта дополнительная информация заголовка не нужна и может быть удалена.

Удаляем обратный слэш и разрывы строк. На Windows еще меняем одинарные кавычки на двойные.

Вставляем команду curl в терминал и смотрим результат.

Благодаря функциям импорта и кода Postman можно легко переключаться между Postman и curl.

How to Make API Requests with Postman or cURL

Postman is an API testing environment. cURL is a command line tool for transfering data via URLs. When it comes to REST APIs, we can use Postman as a GUI (graphical user interface) and cURL as a CLI (command line interface) to do the same tasks.

If you don’t yet understand REST or know how to use REST APIs, please read Understanding REST and REST APIs.

I’m going to demonstrate how to do GET , POST , PUT , PATCH , and DELETE requests via Postman and cURL. If you don’t have Postman, simply download it from the website. cURL should already be installed in your macOS or Linux environment.

I’m going to use JSON Placeholder, an awesome example site for testing API calls. You can follow along and paste all the commands into your terminal to see what response you get.

Here is the map of methods to endpoints we’ll be using. /posts means all, and the 1 in /posts/1 represents /posts/ , so ID number 1 .

Method Endpoint
GET https://jsonplaceholder.typicode.com/posts
POST https://jsonplaceholder.typicode.com/posts
PUT https://jsonplaceholder.typicode.com/posts/1
PATCH https://jsonplaceholder.typicode.com/posts/1
DELETE https://jsonplaceholder.typicode.com/posts/1

You can click those URLs to see the GET values they provide to the browser. You can use the browser for GET, but you’ll have to use cURL or Postman to POST, PUT, PATCH or DELETE.

cURL CLI arguments

Here are a few cURL argument we’ll pass with our requests. All requests will simply be curl followed by the argument and data to pass.

    — Custom request method — Sends the specified data — Sends headers — Display response headers

GET retrieves data.

You can also use curl -i to get more information from the headers.

All you have to do for Postman is paste the URL, select GET, and send.

get

POST creates a new resource. It is non-idempotent, meaning that two identical POST requests will create two new resources.

There are two ways to do this via Postman. After selecting POST, you can go to Body, select x-www-form-urlencoded , and type each individual value in. If you go to Headers, you’ll see Content-Type: application/x-www-form-urlencoded .

post1

Or you can go to Body, select raw, select JSON , and send the actual JSON you intend to send. If you go to Headers, you’ll see Content-Type: application/json .

post2

PUT updates an existing resource. It is idempotent, meaning that two identical PUT requests will modify the same resource. A PUT request requires the entire body to be sent through; if any data is missing, that data will be wiped (except automatic values like auto-incrementing IDs and timestamps).

Sending the values is the same as with POST.

put

PATCH updates an existing resource, and does not require sending the entire body with the request.

No change to sending the values.

patch

DELETE removes a resource.

No values to send.

delete

If you need to send additional headers, like Authorization: Bearer or x-jwt-assertion for JWT-based authentication, you can do it through cURL like this.

In Postman, you’ll go to Headers and add Authorization as the key and Bearer <JWT_TOKEN> as the value to send authentication values. You can also go to Headers, click Presets, Manage Presets, and put your own reusable variables in for any headers or values you’ll be reusing a lot.

presets

This guide provides all the basics for getting started with testing your APIs, either through Postman’s GUI or cURL’s CLI, using JSON or urlencoded form data.

Newsletter

If you liked this post, sign up to get updates in your email when I write something new! No spam ever.

Comments

About me

Tania

Hello and thanks for visiting! My name is Tania Rascia, and this is my website and digital garden. ��

I'm a software developer who creates open-source projects and writes about code, design, and life. This site is and has always been free of ads, trackers, social media, affiliates, and sponsored posts.

��‍�� Практическое занятие «Используем методы при помощи curl»

Наш пример API прогноза погоды не позволяет использовать что-либо, кроме метода GET, поэтому для этого упражнения, чтобы использовать другие методы с curl, мы будем использовать API-интерфейс petstore. На самом деле мы не будем использовать интерфейс Swagger (о чем мы поговорим позже), на данный момент нам просто нужен API, с помощью которого мы можем создавать, обновлять и удалять контент.

В этом разделе мы создадим нового питомца с помощью Petstore API, обновим его, получим id питомца, удалим его, а затем попытаемся получить удаленного питомца.

Создание питомца

Для создания своего питомца, мы должны передать сообщение в формате JSON в теле запроса. Вместо того, чтобы пытаться кодировать JSON и передавать его в URL, мы сохраним JSON в файле и будем ссылаться на него.

Создаем текстовый файл и пишем в нем следующий код (эта информация будет передана в параметре -d curl запроса):

Меняем значение в первом id и поменяем кличку с fluffy на какое-нибудь другое

Сохраняем наш файл в формате .json в каталоге, к которому можно легко получить доступ с терминала, например, в пользовательском каталоге (на Mac, Users / YOURUSERNAME — заменяем YOURUSERNAME реальным именем пользователя на вашем компьютере).

В Терминале /командной строке переходим в каталог с сохраненным файлом.

Для перехода по каталогам:

  • На MacOS находим свой текущий рабочий каталог, набрав pwd . Переход на уровень выше при помощи команды cd ../ . Переход на уровень ниже при помощи команды cd pets , где pets — это имя каталога, в который нужно попасть. Вводим ls , чтобы просмотреть содержимое каталога.
  • На Windows смотрим в строку пути, чтобы понять в какой директории находимся. Переход на уровень выше при помощи команды cd ../ . Переход на уровень ниже при помощи команды cd pets , где pets — это имя каталога, в который нужно попасть. Вводим dir чтобы посмотреть список директорий в текущей директории.

После того, как вы перешли в Терминале/командной строке в каталог с сохраненным JSON файлом, создаем нашего питомца следующим curl запросом:

Content-Type указывает тип контента, представленного в теле запроса. Accept указывает тип контента, который мы примем в ответе.

Ответ будет выглядеть примерно так:

Проверьте, что в ответе кличка именно вашего питомца.

Обновление питомца

А что если питомец не любит свое имя?

Изменим ему имя на другое используя метод обновления.

В файле .json сданными питомца изменим его имя.

Вместо метода POST используем метод PUT для обновления имени (в остальном запрос не меняется):

В ответе будет новое имя питомца.

Получение имени питомца при помощи ID

Теперь узнаем имя питомца, передав его ID в конечную точку /pet/:

В файле .json скопируем значение id питомца.

В команде curl заменим 51231236 на id своего питомца и узнаем информацию о нем:

В ответе будет информация о нашем питомце:

Можно отформатировать JSON, вставив его в инструмент форматирования JSON

Удаление питомца

“Извини, сынок, собака была бешеной, пришлось пристрелить” (© “Маска” фильм, 1994)

Для удаления питомца используем метод DELETE. В примере ниже меняем 5123123 на id своего питомца:

Теперь проверим, получилось удалить питомца. Используем метод GET в этой же команде

Ответ будет примерно таким:

Этот пример позволил нам увидеть, как можно работать с curl для создания, чтения, обновления и удаления ресурсов. Эти четыре операции называются CRUD и являются общими почти для каждого языка программирования.

Хотя Postman, вероятно, проще в использовании, curl используется на уровне мощности. Команды тестирования часто создают сложные тестовые сценарии, которые повторяют множество запросов curl.

Импорт curl в Postman

Можно импортировать команды curl в Postman выполняя следующее:

Открываем новую вкладку в Postman и нажимаем Import в левом верхнем углу.

В диалоговом окне выбираем вкладку “Paste Raw Text” и вводим команду:

Указываем свой Id питомца и проверяем, что нет лишних пробелов.

import

Нажимаем на кнопку Import

Закрываем диалоговое окно, если не закрылось автоматически.

Нажимаем кнопку Send (Если питомец был удален, то будет выдана ошибка “Pet not found”)

Экспорт Postman в curl

Можно экспортировать Postman в curl, выполнив следующие действия:

  • При желании выбираем один из наших запросов API OpenWeatherMap в Postman.
  • Нажимаем кнопку Code
  • Выбираем curl в выпадающем списке.
  • Копируем отрывок кода

Вы можете видеть, что Postman добавляет дополнительную информацию заголовка ( -H ‘Postman-Token: de0da6b7-1dbc-44d6-acc1-9741f05a7bf1’ \ -H ‘cache-control: no-cache’ ) в запрос. Эта дополнительная информация заголовка не нужна и может быть удалена.

  • Удаляем обратный слэш и разрывы строк. На Windows еще меняем одинарные кавычки на двойные.
  • Вставляем команду curl в терминал и смотрим результат.

Благодаря функциям импорта и кода Postman можно легко переключаться между Postman и curl.

How to send curl POST variables in POSTMAN

How can I send these details(POST method) in Postman to receive a response as JSON data?

Laurel's user avatar

3 Answers 3

Since you already have a valid curl request, you can actually import that and Postman will automatically convert it into a Postman call.

  1. From the main menu, click «Import»
  2. Click «Paste Raw Text»
  3. Paste your curl request and click «Import»

blau's user avatar

  1. Login to Postman
  2. Click on plus (+) to add a new tab
  3. In the new tab, select POST, and enter the request URL https://api.mysite.contact/info/regular
  4. Select Body in the sub-menu, below the URL you entered above
  5. Select the form-data radio button
  6. Click on Bulk Edit on the left side
  7. Paste your parameters in the following format, and press Submit:

Then press the Send button

The screen will look like this: enter image description here

Thanks All, i found solution. I used x-www-form-urlencoded to get my desired result.

    The Overflow Blog
Related
Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.3.3.43278

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

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

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