Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/catouse/zentao-api
JavaScript client libary for ZenTao SDK http://www.zentao.net/book/api/setting-369.html
https://github.com/catouse/zentao-api
api client javascript sdk zentao
Last synced: about 3 hours ago
JSON representation
JavaScript client libary for ZenTao SDK http://www.zentao.net/book/api/setting-369.html
- Host: GitHub
- URL: https://github.com/catouse/zentao-api
- Owner: catouse
- License: mit
- Created: 2021-02-17T09:11:46.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-03-13T06:06:09.000Z (over 3 years ago)
- Last Synced: 2024-10-14T11:22:10.182Z (about 1 month ago)
- Topics: api, client, javascript, sdk, zentao
- Language: TypeScript
- Homepage:
- Size: 300 KB
- Stars: 9
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [zentao-api](https://github.com/catouse/zentao-api)
[![CI](https://github.com/catouse/zentao-api/actions/workflows/main.yml/badge.svg)](https://github.com/catouse/zentao-api/actions/workflows/main.yml)
禅道 API 调用模块。
## 使用方法
### 安装
```bash
npm install --save zentao-api
```### 请求任何禅道 API
通过构建 `Zentao` API 调用实例,你可以使用链式方法 ``zentao.m(moduleName).f(methodName)...get()`` 来非常方便调用禅道任何 API。
```js
import { Zentao } form 'zentao-api';// 创建一个禅道 API 调用对象
const zentao = new Zentao({
url: 'https://demo.zentao.net/',
account: 'demo',
password: '123456'
});// 调用 product-all 获取所有产品信息
const productAllResult = await zentao
.m('product')
.f('all')
.get();// 输出产品列表
console.log('All products', productAllResult.data.products);// 调用 product-view 获取产品详细信息
const productViewResult = await zentao
.m('product')
.f('view')
.withParams({productID: 1})
.get();// 输出产品信息
console.log('All products', productViewResult.data.prodcut);// 调用 prodcut-add 添加新的产品到禅道
const productCreateResult = await zentao
.m('product')
.f('create')
.post({
name: 'New product',
code: 'new_product_code'
});if (productCreateResult.status) {
console.log('"New product" added.');
}
```你可以访问 来查看所有可用 API 和详细示例。
### 禅道 12 常用方法调用
针对禅道 12 版本,通过内置的 `Zentao12` 调用类可以直接调用一些常见方法:
```js
import { Zentao12 } form 'zentao-api';// 创建一个禅道12 API 调用对象
const zentao = new Zentao12({
url: 'https://demo.zentao.net/',
account: 'demo',
password: '123456'
});// 调用 product-all 获取所有产品信息
const productAllResult = await zentao.getProductList();
// 输出产品列表
console.log('All products', productAllResult.data.products);// 调用 product-view 获取产品详细信息
const productViewResult = await zentao.getProduct({productID: 1})
// 输出产品信息
console.log('All products', productViewResult.data.prodcut);// 调用 prodcut-add 添加新的产品到禅道
const productCreateResult = await zentao.addProduct({
name: 'New product',
code: 'new_product_code'
});
if (productCreateResult.status) {
console.log('"New product" added.');
}
````Zentao12` 实例上所有可用的方法包括:
* addBug
* addDept
* addProduct
* addProject
* addTask
* addUser
* finishTask
* getBug
* getBugCreateParams
* getBugList
* getBugResolveParams
* getDeptList
* getProduct
* getProductCreateParams
* getProductList
* getProject
* getProjectCreateParams
* getProjectList
* getTask
* getTaskCreateParams
* getTaskFinishParams
* getTaskList
* getUserCreateParams
* getUserList
* resolveBug`Zentao12` 继承自 `Zentao`,所以你仍然可以在 `Zentao12` 上调用 `zentao.m().f()...get()` 链式方法来请求禅道提供的任何 API。
你可以访问 来查看所有可用 API 和详细示例。
## 开发
该项目框架基于 [`TSdx`](https://tsdx.io/),完全使用 [TypeScript](https://www.typescriptlang.org/) 开发。
如果希望参与本项目开发,可以先了解以下内容。
### 启动开发模式
在开发目录执行 `npm install` 来安装依赖,然后执行如下命令启动开发模式:
```bash
npm start
```该命令会立即编译项目,并且在 /dist 目录生成编译后的文件,编译完成后改命令并不会退出,而是持续监听 `src/` 目录下的文件变更,并适时自动重新编译。
### 构建
如果仅仅需要一次构建编译,只需要执行:
```bash
npm build
```### 测试
该项目使用 `jest` 进行测试,执行如下命令即可:
```bash
npm test
```### 生成 API 文档
该项目使用 [TypeDoc](https://typedoc.org/) 来根据源码中的注视自动生成 API 文档,只需要执行如下命令:
```bash
npm run doc
```### 包大小分析
该项目使用 [`size-limit`](https://github.com/ai/size-limit) 来帮助分析包大小,只需要执行如下命令:
```bash
npm run size
```如果需要通过可视化报告分析包大小,只需要执行:
```bash
npm run analyze
```### 代码检查
执行:
```bash
npm run lint
```