---
metadata:
  - name: generator
    content: Diplodoc Platform v5.55.0
alternate:
  - https://yandex.com/dev/market/partner-api/doc/en/step-by-step/quick-start-js.md
  - https://yandex.com/dev/market/partner-api/doc/ru/step-by-step/quick-start-js.md
  - https://yandex.com/dev/market/partner-api/doc/zh/step-by-step/quick-start-js.md
  - href: zh/step-by-step/quick-start-js.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/market/partner-api/doc/zh/llms.txt

# 在JavaScript中启动集成

本指南将帮助您从头开始在JavaScript中设置最简单的测试集成，以满足市场上的商店请求。 您可以请求商店列表并获得响应。

{% note info "您将需要一个节点。js和Java版本11或更高版本" %}

提前设置它们。

[如何安装节点.js的](https://nodejs.org/en)

[如何安装Java](https://www.java.com/ru/download/help/download_options.html)

{% endnote %}

## 下载 OpenAPI-规格 {#download}

{% list tabs %}

- 通过git

  1. 打开要保存规范的文件夹。 在本说明书中，将其称为 `<project_directory>`.
  2. 在其中运行命令提示符。
  3. 编写命令:

        ```no-highlight translate=no
        git clone https://github.com/yandex-market/yandex-market-partner-api.git
        ```

- 只是一个浏览器

  1. 下载 [市场规格与 GitHub](https://github.com/yandex-market/yandex-market-partner-api/archive/refs/heads/main.zip).
  2. 将存档解压缩到要保存规范的文件夹。 在本说明书中，将其称为 `<project_directory>`.

{% endlist %}

## 生成客户端 {#generate}

1. 打开文件夹 `yandex-market-partner-api`，这出现在上一步。
2. 在其中运行命令提示符。
3. 编写命令:

```text translate=no
npx @openapitools/openapi-generator-cli generate -i <path_to_openapi.yaml> -g javascript -o <output_path>
```

作为一个 **输出路径** 指定项目所在的文件夹。

如果 **openapi工具**尚未安装，请接受安装。 在文件夹中 **输出路径** 客户端的文件将出现。

> **例子：**
>
> 假设您下载了一个存档并解压缩。 规范在文件夹中 `<project_directory>/yandex-market-partner-api`.
>
> 您是否要将项目放在文件夹中 `<project_directory>/market-integration`.
>
> &#49;. 打开文件夹 `<project_directory>/yandex-market-partner-api`.
>
> &#50;. 在其中运行命令提示符。
>
> &#51;. 在打开的控制台中，写:
>
>    ```text translate=no
>    npx @openapitools/openapi-generator-cli generate -i openapi/openapi.yaml -g javascript -o ../market-integration
>    ```
>
> &#52;. 如果系统提示您安装生成器，请输入 **Y** 并点击 **进入**.


## 创建项目 {#create-project}

1. 打开客户端文件所在的文件夹。 在上面的例子中，这是 `<project_directory>/market-integration`.
2. 在其中运行命令提示符。
3. 编写命令:

    ```text translate=no
    npm install
    npm run build
    ```

## 准备数据以供访问 {#token}

通过以下方式获取授权令牌 [指示说明](https://yandex.com/dev/market/partner-api/doc/zh/concepts/api-key.md).

## 提出要求 {#code}

要执行 [GET v2/campaigns](https://yandex.com/dev/market/partner-api/doc/zh/reference/campaigns/getCampaigns.md):

1. 在IDE中打开创建的项目。
2. 在项目的根目录（文件夹）中创建 `<project_directory>/market-integration`)档案 `index.js`.
3. 创建实例 `CampaignsApi` 并参考方法 `getCampaigns`. 要做到这一点，写信给 `index.js` 这是代码:

    ```javascript translate=no
    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>` 使用您在上一步中收到的令牌。

4. 写入控制台 `node index.js`.

控制台将显示查询的结果：所有商店的名称、放置模型、Id等:

```json translate=no
{
    "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
    }
}
```
