Запуск интеграции на JavaScript
Эта инструкция поможет с нуля настроить простейшую тестовую интеграцию для запросов магазина к Маркету на языке JavaScript. Вы сможете запросить список магазинов и получить ответ.
Вам понадобится Node.js и Java не ниже 11-й версии
Скачайте OpenAPI-спефицикацию
-
Откройте папку, в которой хотите сохранить спецификацию. В этой инструкции она будет обозначаться как
<project_directory>
. -
Запустите в ней командную строку.
-
Напишите команду:
git clone https://github.com/yandex-market/yandex-market-partner-api.git
- Скачайте спецификацию Маркета с GitHub
- Распакуйте архив в папку, в которой хотите сохранить спецификацию. В этой инструкции она будет обозначаться как
<project_directory>
.
Сгенерируйте клиент
- Откройте папку
yandex-market-partner-api
, которая появилась на предыдущем шаге. - Запустите в ней командную строку.
- Напишите команду:
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.
Создайте проект
-
Откройте папку, в которой лежат файлы клиента. В примере выше это
<project_directory>/market-integration
. -
Запустите в ней командную строку.
-
Напишите команду:
npm install npm run build
Подготовьте данные для доступа
Получите авторизационный токен по инструкции.
Выполните запрос
Чтобы выполнить GET campaigns:
-
Откройте в IDE созданный проект.
-
Создайте в корне проекта (папке
<project_directory>/market-integration
) файлindex.js
. -
Создайте экземпляр
CampaignsApi
и обратитесь к методуgetCampaigns
. Для этого напишите вindex.js
вот такой код:const { CampaignsApi } = require('./dist'); const campaignsApi = new CampaignsApi(); campaignsApi.apiClient.authentications['ApiKey'].apiKey = '<token>'; campaignsApi.getCampaigns(undefined, function (error, data) { console.log(JSON.stringify(data, null, 4)); });
В качестве
<token>
используйте токен, который получили на предыдущем шаге. -
В консоль напишите
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
}
}