Запуск интеграции на JavaScript

Эта инструкция поможет с нуля настроить простейшую тестовую интеграцию для запросов магазина к Маркету на языке JavaScript. Вы сможете запросить список магазинов и получить ответ.

Вам понадобится Node.js и Java не ниже 11-й версии

Скачайте OpenAPI-спефицикацию

  1. Откройте папку, в которой хотите сохранить спецификацию. В этой инструкции она будет обозначаться как <project_directory>.

  2. Запустите в ней командную строку.

  3. Напишите команду:

    git clone https://github.com/yandex-market/yandex-market-partner-api.git
    
  1. Скачайте спецификацию Маркета с GitHub
  2. Распакуйте архив в папку, в которой хотите сохранить спецификацию. В этой инструкции она будет обозначаться как <project_directory>.

Сгенерируйте клиент

  1. Откройте папку yandex-market-partner-api, которая появилась на предыдущем шаге.
  2. Запустите в ней командную строку.
  3. Напишите команду:
npx @openapitools/openapi-generator-cli generate -i <path_to_openapi.yaml> -g javascript -o <output_path>

В качестве output path укажите папку, в которой будет ваш проект.

Если openapitools пока не установлено, согласитесь на установку. В папке output path появятся файлы клиента.

Пример

Допустим, вы скачали архив и распаковали его. Спецификация лежит в папке <project_directory>/yandex-market-partner-api.

Вы хотите разместить проект в папке <project_directory>/market-integration.

1. Откройте папку <project_directory>/yandex-market-partner-api.

2. Запустите в ней командную строку.

3. В открывшуюся консоль напишите:

npx @openapitools/openapi-generator-cli generate -i openapi/openapi.yaml -g javascript -o ../market-integration

4. Если появится предложение установить генератор, введите Y и нажмите Enter.

Создайте проект

  1. Откройте папку, в которой лежат файлы клиента. В примере выше это <project_directory>/market-integration.

  2. Запустите в ней командную строку.

  3. Напишите команду:

    npm install
    npm run build
    

Подготовьте данные для доступа

Получите авторизационный токен по инструкции.

Выполните запрос

Чтобы выполнить GET campaigns:

  1. Откройте в IDE созданный проект.

  2. Создайте в корне проекта (папке <project_directory>/market-integration) файл index.js.

  3. Создайте экземпляр CampaignsApi и обратитесь к методу getCampaigns. Для этого напишите в index.js вот такой код:

    const { CampaignsApi } = require('./dist');
    
    const campaignsApi = new CampaignsApi();
    campaignsApi.apiClient.authentications['OAuth'].accessToken = '<token>';
    
    campaignsApi.getCampaigns(undefined, function (error, data) {
        console.log(JSON.stringify(data, null, 4));
    });
    

    В качестве <token> используйте токен, который получили на предыдущем шаге.

  4. В консоль напишите node index.js.

В консоли отобразится результат запроса: названия всех магазинов, модели размещения, идентификаторы и прочее:

{
    "campaigns": [
        {
            "domain": "Shop 1",
            "id": 12345678,
            "clientId": 87654321,
            "business": {
                "id": 123456,
                "name": "My shop"
            },
            "placementType": "FBS"
        },
        {
            "domain": "Shop 2",
            "id": 23456789,
            "clientId": 98765432,
            "business": {
                "id": 123456,
                "name": "My shop"
            },
            "placementType": "DBS"
        },
        {
            "domain": "GoodShop",
            "id": 34567891,
            "clientId": 19876543,
            "business": {
                "id": 123456,
                "name": "My shop"
            },
            "placementType": "FBY"
        },
    ],
    "pager": {
        "total": 3,
        "from": 1,
        "to": 3,
        "currentPage": 1,
        "pagesCount": 1,
        "pageSize": 3
    }
}