Neo OpenAPI SDK
npm install neo-open-api```
npm install --save neo-open-api
#### request
基于 axios 封装的通用请求工具,支持 GET、POST、PATCH、DELETE 等请求方法。
`typescript
import { request } from 'neo-open-api';
// 基本用法
const result = await request({
url: '/api/endpoint',
method: 'GET',
data: { key: 'value' },
headers: { 'Custom-Header': 'value' },
timeout: 30000
});
`
参数说明:
- url: 请求地址method
- : 请求方法,默认为 'GET'data
- : 请求数据,GET 请求会转为 paramsheaders
- : 请求头,默认包含 'Content-Type': 'application/json'timeout
- : 超时时间,默认 30000ms
##### request 内置拦截器,仅允许使用以下五类数据接口
- 自定义 API:/rest/data/v2.0/scripts
- 获取自定义 API 列表:/rest/metadata/v2.0/dx/logic/extpoints/openapi
- 实体类 open api:/rest/data/v2.0/xobjects
- 实体列表接口:/rest/metadata/v2.0/xobjects/filter
- 通用查询接口:/rest/data/v2/query
#### 1. 查询业务对象数据列表
使用通用查询接口获取业务对象数据,支持分页和排序。
`typescript
import { xObject } from 'neo-open-api';
// 基本查询
const result = await xObject.query({
xObjectApiKey: 'xxObject', // 业务对象 API Key
fields: ['name', 'phone', 'email'], // 查询字段
page: 1, // 页码(可选)
pageSize: 10, // 每页数量(可选)
orderBy: 'name asc' // 排序条件(可选)
});
`
参数说明:
- xObjectApiKey: 业务对象的 API Keyfields
- : 需要查询的字段数组,会自动添加 'id' 字段page
- : 页码,默认为 1pageSize
- : 每页数量,默认为 10orderBy
- : 排序条件,如 'name asc' 或 'createdTime desc'
返回结果:
`typescript`
{
status: boolean, // 返回 true 表示执行成功
code: number, // 返回码
msg: string, // 一般用于返回错误信息
totalSize: number, // 总个数
data: any[] // 查询结果数据
}
#### 2. 获取业务类型列表
获取指定业务对象的业务类型列表。
`typescript
import { xObject } from 'neo-open-api';
const result = await xObject.getEntityTypeList('xObjectApiKey', {
// 其他请求选项
});
`
参数说明:
- xObjectApiKey: 业务对象的 API Keyoptions
- : 可选的请求配置
返回结果:
`typescript`
{
status: boolean, // 返回 true 表示执行成功
code: number, // 返回码
msg: string, // 一般用于返回错误信息
totalSize: number, // 总个数
data: any[] // 查询结果数据
}
#### 3. 获取对象列表
获取系统中的对象列表,支持标准对象和自定义对象。
`typescript
import { xObject } from 'neo-open-api';
// 获取所有对象列表
const {data: standardObjects} = await xObject.getEntityList({
active: true // 仅获取有权限的对象
});
// 获取标准对象列表
const {data: standardObjects} = await xObject.getEntityList({
custom: false, // 获取标准对象
active: true // 仅获取有权限的对象
});
// 获取自定义对象列表
const {data: customObjects} = await xObject.getEntityList({
custom: true, // 获取自定义对象
active: true // 仅获取有权限的对象
});
`
参数说明:
- custom: 是否获取自定义对象,false 为标准对象,true 为自定义对象,不传则获取所有实体对象active
- : 是否仅获取有权限的对象,默认为 true
返回结果:
`typescript`
{
status: boolean, // 返回 true 表示执行成功
code: number, // 返回码
msg: string, // 一般用于返回错误信息
totalSize: number, // 总个数
data: any[] // 查询结果数据
}
#### 4. 创建业务数据
创建新的业务数据记录。
`typescript
import { xObject } from 'neo-open-api';
const result = await xObject.create('xObjectApiKey', {
data: {
name: '张三',
phone: '13800138000',
email: 'zhangsan@example.com'
}
});
`
参数说明:
- xObjectApiKey: 业务对象的 API Keyoptions.data
- : 要创建的数据对象
返回结果:
`typescript`
{
status: boolean, // 返回 true 表示执行成功
code: number, // 返回码
msg: string, // 一般用于返回错误信息
totalSize: number, // 总个数
data: Object // 创建的业务数据
}
#### 5. 更新业务数据
更新指定的业务数据记录。
`typescript
import { xObject } from 'neo-open-api';
const result = await xObject.update('xObjectApiKey', 'xObjectId', {
data: {
name: '李四',
phone: '13900139000'
}
});
`
参数说明:
- xObjectApiKey: 业务对象的 API KeyxObjectId
- : 要更新的记录 IDoptions.data
- : 要更新的数据对象
返回结果:
`typescript`
{
status: boolean, // 返回 true 表示执行成功
code: number, // 返回码
msg: string, // 一般用于返回错误信息
data: Object // 更新的业务数据
}
#### 6. 获取业务数据详情信息
获取指定业务数据记录的详细信息。
`typescript
import { xObject } from 'neo-open-api';
// 使用方式一
const result = await xObject.get({
xObjectApiKey: 'xxKey', // 业务对象的 API Key
xObjectId: 'xxId',
option: {
// 其他请求选项
}
});
// 使用方式二
const result = await xObject.get('xObjectApiKey', 'xObjectId', {
// 其他请求选项
});
`
参数说明:
- xObjectApiKey: 业务对象的 API KeyxObjectId
- : 要获取的业务数据 IDoptions
- : 可选的请求配置
返回结果:
`typescript`
{
status: boolean, // 返回 true 表示执行成功
code: number, // 返回码
msg: string, // 一般用于返回错误信息
data: Object // 获取的业务数据
}
#### 7. 删除业务数据
删除指定的业务数据记录。
`typescript
import { xObject } from 'neo-open-api';
const result = await xObject.delete('xObjectApiKey', 'xObjectId');
`
参数说明:
- xObjectApiKey: 业务对象的 API KeyxObjectId
- : 要删除的业务数据 ID
返回结果:
`typescript`
{
status: boolean, // 返回 true 表示执行成功
code: number, // 返回码
msg: string, // 一般用于返回错误信息
}
#### 8. 获取业务对象描述
获取业务对象的描述信息。
`typescript
import { xObject } from 'neo-open-api';
const result = await xObject.getDesc('xObjectApiKey');
`
参数说明:
- xObjectApiKey: 业务对象的 API Key
#### 1. 获取自定义API列表
获取系统中的自定义API列表,支持分页查询。
`typescript
import { customApi } from 'neo-open-api';
// 基本用法
const result = await customApi.getList({
pageNo: 1, // 页码(可选)
pageSize: 1000 // 每页数量(可选)
});
`
参数说明:
- pageNo: 页码,默认为 1pageSize
- : 每页数量,默认为 1000
返回结果:
`typescript`
{
status: boolean, // 返回 true 表示执行成功
code: number | string, // 返回码
msg: string, // 一般用于返回错误信息
totalSize: number, // 总个数
data: any[] // 自定义API列表数据
}
#### 2. 执行自定义API
执行指定的自定义API接口。
`typescript
import { customApi } from 'neo-open-api';
// 基本用法
const result = await customApi.run({
apiUrl: '/rest/custom/api/endpoint', // 自定义API地址
methodType: 'POST', // 请求方法,如 'GET', 'POST', 'PUT', 'DELETE' 等(可选,默认为 'POST')
data: { // 请求数据
key1: 'value1',
key2: 'value2'
}
});
`
参数说明:
- apiUrl: 自定义API的完整地址(必填)methodType
- 或 method: 请求方法,默认为 'POST'data
- : 请求数据对象,会被包装在 data 字段中发送
返回结果:
`typescript`
{
status: boolean, // 返回 true 表示执行成功
code: number | string, // 返回码
msg: string, // 一般用于返回错误信息
data: any // API返回的数据
}
使用示例:
`typescript
import { customApi } from 'neo-open-api';
// 执行自定义API
const result = await customApi.run({
apiUrl: '/rest/custom/api/processData',
methodType: 'POST',
data: {
param1: 'value1',
param2: 'value2'
}
});
// 获取当前添加的自定义API列表
const {data: apiList} = await customApi.getList({
pageNo: 1,
pageSize: 100
});
`
`typescript
import { xObject } from 'neo-open-api';
// 查询联系人列表
const {data: contacts} = await xObject.query({
xObjectApiKey: 'Contact',
fields: ['name', 'phone', 'email'],
page: 1,
pageSize: 20,
orderBy: 'createdAt desc'
});
// 创建新联系人
const {data: newContact} = await xObject.create('Contact', {
data: {
name: '王五',
phone: '13700137000',
email: 'wangwu@example.com'
}
});
// 更新联系人
const {data: updatedContact} = await xObject.update('Contact', newContact.id, {
data: {
name: '王五(更新)'
}
});
// 获取联系人详情
const {data: contactDetail} = await xObject.get('Contact', newContact.id);
// 删除联系人
await xObject.delete('Contact', newContact.id);
``