UNPKG

node-cnb

Version:

node sdk for cnb open api

90 lines (62 loc) 2.23 kB
# 介绍 ![badge](https://cnb.cool/cnb/sdk/node-cnb/-/badge/git/1876ef5f/ci/pipeline-as-code) ![badge](https://cnb.cool/cnb/sdk/node-cnb/-/badge/git/latest/ci/status/pull_request) ![badge](https://cnb.cool/cnb/sdk/node-cnb/-/badge/git/1876ef5f/ci/status/tag_push) ![badge](https://cnb.cool/cnb/sdk/node-cnb/-/badge/git/latest/code/vscode-started) ![badge](https://img.shields.io/npm/v/node-cnb.svg) node-cnb 是一个用于访问 [CNB API](https://api.cnb.cool/) 的 node 编写的 SDK。 ## 安装 ```shell npm install node-cnb ``` ## 使用 ```typescript import { getClient } from "node-cnb"; // 参数分别为 api url 和 访问令牌 const client = getClient("https://api.cnb.cool", "xxx"); client.users.pinnedRepos .list({ username: "xxx", }) .then((res) => { console.log(res); }); ``` ```javascript const sdk = require("node-cnb"); // 参数分别为 api url 和 访问令牌 const client = sdk.getClient("https://api.cnb.cool", "xxx"); client.users.pinnedRepos .list({ username: "xxx", }) .then((res) => { console.log(res); }); ``` ## 方法路径 方法路径有两种模式 ### 1.请求路径拼接 方法路径为由如下几个元素组成: 1. 第一个 `/-/` 前的参数名 2. 其他非参数名 3. http method(若 methodget 且返回结果为数组则为 list) 例如: `/{repo}/-/git/branches` 的路径下 get 请求的方法名为 `repo.git.branches.list` `/{repo}/-/git/branches/{branch}` 的路径下 get 请求方法名为 `repo.git.branches.get` 对于此规则下方法路径仍然重复的 api,则单独定义在 [pathMethodMap.json](https://cnb.cool/cnb/sdk/node-cnb/-/blob/main/pathMethodMap.json) ### 2.Tag+operationId拼接 在 swagger json 中可以看到每个方法都有一个 Tag 和 operationId, 可以用 `client.<Tag>.<operationId>` 调用: ```javascript const sdk = require("node-cnb"); // 参数分别为 api url 和 访问令牌 const client = sdk.getClient("https://api.cnb.cool", "xxx"); client.Repositories.GetPinnedRepoByID({ username: "xxx", }) .then((res) => { console.log(res); }); ``` 完整api路径请参考 [client.d.ts](https://cnb.cool/cnb/sdk/node-cnb/-/blob/main/src/client.d.ts)