---
metadata:
  - name: generator
    content: Diplodoc Platform v5.48.2
alternate:
  - https://yandex.com/dev/eda-vendor/doc/en/collections.md
  - https://yandex.com/dev/eda-vendor/doc/ru/collections.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/eda-vendor/doc/ru/llms.txt

# Коллекции для партнеров

Загрузите готовые коллекции и импортируйте их в [Postman](https://www.postman.com/) для тестирования API.

Список коллекций:

* [Рестораны](https://yastatic.net/s3/doc-binary/src/dev/eda-vendor/Rest_for_partners.postman_collection.json)
* [Рестораны UZ с кодами ИКПУ](https://yastatic.net/s3/doc-binary/src/dev/eda-vendor/Restaurants_UZ.postman_collection.json)

{% cut "Инструкция по работе с коллекциями" %}

#### Структура запросов

В разделе Collections внутри главной корневой папки лежит несколько папок:
* Menu – запросы для парсинга меню:
   1. `Выдача меню/номенклатуры`.
   2. `Стоки/Stocks` – выдача позиций меню недоступных для заказа на текущий момент.
   3. `Promo` – выдача акционных блюд в связке с меню (только для ресторанов).
* `Slots/Слоты` – методы получения слотов в каталоге и корзине (только для магазинов на слотах).

   ![](_images/screen_1.png =400x)

* `Order (Заказы)` – запросы по ручкам заказа:
   1. `POST /order` – отправка заказа.
   2. `GET /order/{order_id}` – выдача актуальной информации о заказе.
   3. `DELETE /order/{order_id}` – отмена заказа в системе ресторана (со стороны Яндекса).
   4. `PUT /order/{order_id}`– обновление заказа в системе ресторана.
   5. `GET /order/{order_id}/status` – выдача актуального статуса заказа в системе ресторана.

   ![](_images/screen_2.png =400x)

* Метод получения списка заведений партнера `GET /restaurants`.
* Метод получения токена авторизации `POST /security/oauth/token`.

#### Работа с окружением

Для удобства и скорости выполнения запросов, изменяемые параметры выведены в переменные. Перед началом работы добавьте их в окружение.

1. Создайте новое окружение на вкладке `Environments`.

   ![](_images/screen_3.png =400x)

2. Введите имя окружения и сохраните его.

3. В столбце **Variable** добавьте необходимые параметры. В столбце **Current_value** введите значения нужных параметров:

   ![](_images/screen_4.png =400x)

4. Сохраните изменения. Чтобы изменить значения переменных, перейдите на вкладку **Редактирование**.

   ![](_images/screen_5.png =400x)

#### Отправка запросов

1. **Авторизация**

    1. Нажмите на нужный запрос и перейдите на него.
    2. В теле запроса (вкладка Body) убедитесь, что указаны необходимые переменные, а значения `grant_type` и `scope` соответствуют кредам:

       ![](_images/screen_6.png =400x)

       * Заголовок запроса `application/x-www-form-urlencoded` (соответствует спецификации)
       * При запросе токена заголовок авторизации не требуется – на вкладке Authorization должен быть установлен `type = "no auth"`, а на вкладке `Headers` заголовок авторизации не должен быть включен:

       ![](_images/screen_7.png =400x)

       ![](_images/screen_8.png =400x)

    3. Нажмите **Send**, чтобы отправить запрос.

2. **Запрос на получение меню или номенклатуры**

    1. Получить токен авторизации.
    2. Перейти к запросу `GET {host}/menu/{restaurant_id}/composition ` или `GET /{host}/nomenclature/{place_id}/availability`.
    3. Убедиться, что полученный токен применился корректно:
       * На вкладке **Authorization** используется Type "OAuth 2.0".
       * На вкладке **Headers** токен указан в значении `(value)` ключа `Authorization`:
    4. Нажать **Send**, чтобы отправить запрос.

    {% note info %}

    В запросах на получение меню/номенклатуры учтены проверки на успешный ответ (код 200) и коды ошибок 401 (запрос без авторизации) и 404 (сэмулирован запрос с невалидным **place_id**). Там проверяются заголовки и тела ответов на соответствие спецификации.

    {% endnote %}

    Остальные запросы выполняются аналогично. Проверки заголовков и тела ответа учитывают только успешный код ответа (200).

#### Проверка результатов тестов

Для запросов получения меню или стоков, и данных по заказам внутри вкладки `Tests` написаны скрипты автопроверок на наиболее грубые ошибки, к которым чувствительна система.

После выполнения запроса результаты тестов выводятся в блоке `Response` -> `Tests Results`

![](_images/screen_9.png =700x)

{% cut "Расшифровка статусов тестов" %}

* `Content-Type is present and correct value` – корректный заголовок (Content Type) в ответе.

* `Validate JSON schema` – схема ответа соответствует спецификации.

* `Date in lastChange is present in correct format` – параметр lastChange соответствует формату RFC3339 с дробной частью секунд и регулярному выражению.

* `The price should not be <= 0` – цена товара ненулевая.

* `mxikCodeUz is exactly 17 symbols long | AssertionError: expected +0 to equal 54` – коды ИКПУ (актуально только для Узбекистана) соответсвуют формату (17 цифр).

* `The measureUnit one of [г, мл, g, ml]` – единица измерения соответствует допустимым значениям (граммы и миллилитры).

* `Id in items are unique - все id товаров уникальны.` – проверка на `"categoryId": null`. В этом случае id таких категорий будут выведены в консоль.

* `All categoryId of items exist in categories id ` – все id категорий, на которые ссылаются айтемы, объявлены в массиве категорий.

* `Images links lead to picture` – все ссылки на изображения содержат допустимые разрешения.

* `Response timeout is within acceptable range` - Время ожидания ответа на запрос находится в пределах допустимого диапазона.

* `PASS /FAIL` – статус прохождения тестов.

{% endcut %}

{% endcut %}
