> For the complete documentation index, see [llms.txt](https://daymonri.gitbook.io/techwritersummary/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://daymonri.gitbook.io/techwritersummary/api/osnovy-postman.md).

# Основы Postman

**Path-параметр** позволяет получить определённый ресурс и его характеристики. Добавляется в URL через «:», например – <https://petstore.swagger.io/v2/pet/:id>. После этого «id» появится в таблице «**Path Variables**» и для него можно ввести значение. Альтернативный вариант – вписать значение параметра сразу в URL, например – <https://petstore.swagger.io/v2/pet/1234>, где «1234» – это значение параметра id.

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2Fx6N09Q7WiaeeCgY0otTC%2Fimage.png?alt=media&amp;token=572c69aa-c2c0-4e66-b362-cc1bad2a7f01" alt=""><figcaption></figcaption></figure></div>

**Query-параметр** позволяет искать, фильтровать, сортировать данные. Чаще всего используется в GET. Добавляется в URL через «?», несколько параметров отделяются друг от друга с помощью «&». Query-параметр состоит из пары «имя=значение». Появится в таблице «**Query Params**». Например – <https://petstore.swagger.io/v2/pet/findByStatus?status=available>.

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2FbQj3jiK7dHz5XCG19qdg%2Fimage.png?alt=media&amp;token=6ae41a34-d204-4a34-8921-8c3b760cbb37" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
*Параметры и их значения можно вводить в таблицах «Path Variables» и «Query Params», тогда Postman автоматически добавит их в запрос.*
{% endhint %}

Если параметров много, в обеих таблицах есть режим «**Bulk Edit**». В этом режиме параметры вводятся вручную по следующим правилам:

* каждый параметр с новой строки;
* имя и значение отделяются «:» без пробелов.

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2FdYpMW8fco6t5tMWctPo4%2Fimage.png?alt=media&amp;token=b9080e96-ef84-46ea-83c5-abcba20bc18c" alt=""><figcaption></figcaption></figure></div>

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2FVp4qxH8lBeo8N02RWB6Y%2Fimage.png?alt=media&amp;token=e4dd6eb6-4993-49aa-a72e-cb01e1ce98a3" alt=""><figcaption></figcaption></figure></div>

**Кнопка Code** в правом боковом меню позволяет увидеть, как будет выглядеть запрос (нужно выбрать тип HTTP).

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2Fsoaq63yrBXIeYXF7xeBt%2Fimage.png?alt=media&amp;token=1636ec5c-7a1a-440b-bb39-a67ca4446638" alt=""><figcaption></figcaption></figure></div>

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2FnxmBmKU8V3PlMJKJd4JV%2Fimage.png?alt=media&amp;token=b58fef7f-c009-41f8-9021-2a9543a5cb44" alt=""><figcaption></figcaption></figure></div>

Для передачи данных в форматах XML и JSON необходимо во вкладке **body** выбрать **raw**, а затем нужный формат. Формат **multipart/form-data** позволяет передавать файлы и текст для заполнения форм.

<figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2Fa0J5C4UhsK3G8WkKguRS%2Fimage.png?alt=media&amp;token=4eb35e76-9694-4750-ad26-b61a8c1f683b" alt=""><figcaption></figcaption></figure>

У кнопки **Send** есть вариант **Send and Downloads**, который позволяет отправить запрос и одновременно сохранить ответ файлом (формат файла соответствует формату данных ответа).

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2FNERKtdywe3KPkO5NYubw%2Fimage.png?alt=media&amp;token=09957458-9a37-4319-a84d-849be1d0d38b" alt=""><figcaption></figcaption></figure></div>

В блоке ответов **Pretty** показывает тело запроса с форматированием, а **Raw** – без форматирования в исходном формате данных. Режим **Preview** демонстрирует ответ в обработанном виде. **Vizualize** обрабатывает ответ особым способом (код для визуализации добавляется отдельно).

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2FRutqtNnLhfEDb2UXpHgK%2Fimage.png?alt=media&amp;token=27971fd5-a315-43af-b4a4-bf273de7e0d8" alt=""><figcaption></figcaption></figure></div>

В блоке ответа помимо **Body** можно посмотреть **Headers, Cookies и Test Results**.

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2Fq0pSXYnQQN6CeoNk9dcc%2Fimage.png?alt=media&amp;token=88d9b825-0827-457b-92c9-e59421af806c" alt=""><figcaption></figcaption></figure></div>

***

Файл **Cookie** отправляется сервером в ответ на запрос клиента и хранится на стороне клиента. В этом файле содержится информация (идентификация, настройки, предпочтения), которую сервер сможет использовать при ответе на последующие запросы клиента.

**Примеры методов для работы с Cookie:**

* **pm.cookies.has(cookieName);** - метод проверяет, есть ли cookie с указанным именем (True или False).
* **pm.cookies.get(cookieName);** - метод возвращает значение cookie с указанным именем (если такого cookie нет, тогда вернёт undefined).
* **pm.cookies.toObject();** - метод возвращает все cookies в виде объекта.

***

**Примеры Headers:**

* **User-Agent** - позволяет серверу идентифицировать браузер или другое приложение, которое отправляет запрос на сервер.
* **Content-Type** - указывает тип контента, посылаемого клиентом / возвращаемого сервером, например, текст, HTML, JSON, изображение.
* **Content-Length** - указывает размер содержимого ответа в байтах.
* **Cache-Control** - позволяет определить, должен ли браузер кэшировать ответ и на какой период времени.
* **Accept** - позволяет клиенту указать типы контента, которые он готов принять от сервера.
* **Authorization** - используется для передачи информации об аутентификации, например, токен доступа или логин и пароль.
* **User-Cache-Control** - позволяет клиенту управлять кэшированием ответа на стороне браузера.

### Переменные

Значение любого ключа в path-запросе можно сделать переменной и сохранить для дальнейшего использования в строке и теле запроса (выделить в таблице **Path Variables** и нажать **Set as variable**). Переменная имеет вид *имя=значение*. Мы используем имя переменной, чтобы получить доступ к её значению. Также в переменной можно хранить часть URL.

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2FOAWmSlTqjg8DYWV4sOzp%2Fimage.png?alt=media&amp;token=7aa7a015-a3aa-4e6a-9a08-2f04574fc150" alt=""><figcaption></figcaption></figure></div>

Переменные хранятся в **Environments**, здесь же их можно создавать вручную. Переменная может быть двух типов – стандартная и секретная (для паролей, значение скрыто).

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2FliHJqW1pPV2T7aXzXG0m%2Fimage.png?alt=media&amp;token=5fe0544a-864b-489b-83e3-a270c42312ce" alt=""><figcaption></figcaption></figure></div>

У переменных есть **области видимости**, их можно объединять в **коллекции**. Запросы также можно объединять в коллекции.

**Динамические переменные** – для каждого нового запроса создаётся новое значение. Имя такой переменной начинается с «**$**». Например, динамическая переменная {{$randomInt}} рандомно возвращает любое целочисленное значение в диапазоне от 0 до 100.

***

В Postman в окне запроса есть вкладка **Scripts**, где к запросу можно добавлять скрипты, исполняемые перед выполнением запроса (**Pre-req**) и после выполнения запроса (**Post-res**). Скрипты пишутся на **JS**. Их можно добавлять не только к запросам, но также к коллекциям и папкам.

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2FuYABhMO1iZTqI1YaQ05X%2Fimage.png?alt=media&amp;token=e9a47e5c-4e7c-4b28-9711-1acd2c4bf0b8" alt=""><figcaption></figcaption></figure></div>

В левой нижней части экрана есть кнопка **Console**. После отправки запроса в консоли будет выведен запрос и его скрипты.

<div align="left"><figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2FcSU00fkQnoWsl4YBYUf9%2Fimage.png?alt=media&amp;token=8049d564-af2a-48cd-b0f0-77167038f6f3" alt=""><figcaption></figcaption></figure></div>

<figure><img src="https://956387675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FczgjL0lfenykQjm6DQfO%2Fuploads%2FQIQC7qvuyNlUIk4EOrxQ%2Fimage.png?alt=media&amp;token=d86b570d-dc3a-4247-bd43-236badd3fcfa" alt=""><figcaption></figcaption></figure>

Сниппеты – «куски кода» (**code snippets**) для быстрого решения стандартных задач.
