团队
团队管理相关操作。
接口列表
GET /api/teams
POST /api/teams
POST /api/teams/join
GET /api/teams/:teamId
POST /api/teams/:teamId
DELETE /api/teams/:teamId
GET /api/teams/:teamId/users
POST /api/teams/:teamId/users
GET /api/teams/:teamId/users/:userId
POST /api/teams/:teamId/users/:userId
DELETE /api/teams/:teamId/users/:userId
GET /api/teams/:teamId/websitesGET /api/teams
返回所有团队。
参数
page:(可选数字,默认 1)指定页码。pageSize:(可选字符串)指定返回结果数量。
示例响应
{
"data": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Umami Software",
"accessCode": "xxxxxxxxxx",
"logoUrl": null,
"createdAt": "2025-01-06T23:46:38.169Z",
"updatedAt": "2025-02-14T17:38:27.607Z",
"deletedAt": null,
"members": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"role": "team-owner",
"createdAt": "2025-01-06T23:46:38.169Z",
"updatedAt": "2025-01-06T23:46:38.169Z",
"user": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"username": "bob@aol.com"
}
},
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"role": "team-member",
"createdAt": "2025-01-06T23:46:38.169Z",
"updatedAt": "2025-01-06T23:46:38.169Z",
"user": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"username": "bob@aol.com"
}
}
],
"_count": {
"websites": 1,
"members": 2
}
}
],
"count": 1,
"page": 1,
"pageSize": 20
}POST /api/teams
创建一个团队。
参数
name:(字符串)团队名称。
请求体
{
"name": "marketing"
}示例响应
[
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "marketing",
"accessCode": "team_KBmjrm5KcDZSArah",
"logoUrl": null,
"createdAt": "0000-00-00T00:00:00.000Z",
"updatedAt": "0000-00-00T00:00:00.000Z",
"deletedAt": null
},
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"role": "team-owner",
"createdAt": "0000-00-00T00:00:00.000Z",
"updatedAt": "0000-00-00T00:00:00.000Z"
}
]POST /api/teams/join
加入一个团队。
参数
accessCode:(字符串)团队访问码。
请求体
{
"accessCode": "xxwtoY8pzKjDIUQi"
}示例响应
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"role": "team-member",
"createdAt": "0000-00-00T00:00:00.000Z",
"updatedAt": "0000-00-00T00:00:00.000Z"
}GET /api/teams/:teamId
获取团队信息。
示例响应
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Umami Software",
"accessCode": "xxxxxxxxxxx",
"logoUrl": null,
"createdAt": "2024-02-17T06:27:50.130Z",
"updatedAt": "2025-02-14T17:37:50.306Z",
"deletedAt": null,
"members": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"role": "team-owner",
"createdAt": "2024-02-17T06:27:50.130Z",
"updatedAt": "2024-02-17T06:27:50.130Z"
},
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"role": "team-member",
"createdAt": "2024-02-29T17:47:21.354Z",
"updatedAt": "2024-02-29T17:47:21.354Z"
}
]
}POST /api/teams/:teamId
更新团队信息。
参数
name:(字符串 | 可选)团队名称。accessCode:(字符串 | 可选)团队访问码。
请求体
{
"name": "Marketing"
}示例响应
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Marketing",
"accessCode": "xxxxxxxxxxx",
"logoUrl": null,
"createdAt": "2025-10-07T07:42:06.112Z",
"updatedAt": "2025-10-10T22:41:22.191Z",
"deletedAt": null
}DELETE /api/teams/:teamId
删除团队。
示例响应
{
"ok": true
}GET /api/teams/:teamId/users
获取属于团队的所有用户。
参数
search:(可选字符串)搜索内容。page:(可选数字,默认 1)指定页码。pageSize:(可选字符串)指定返回结果数量。
示例响应
{
"data": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"role": "team-owner",
"createdAt": "2025-10-10T22:34:46.736Z",
"updatedAt": "2025-10-10T22:34:46.736Z",
"user": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"username": "bob@aol.com"
}
},
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"role": "team-member",
"createdAt": "2025-10-10T22:37:38.587Z",
"updatedAt": "2025-10-10T22:37:38.587Z",
"user": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"username": "bob@aol.com"
}
}
],
"count": 2,
"page": 1,
"pageSize": 20
}POST /api/teams/:teamId/users
向团队添加用户。
参数
userId:要添加用户的ID。role:用户在团队中的角色(team-member|team-view-only|team-manager)。
请求体
{
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"role": "team-member"
}示例响应
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"role": "team-member",
"createdAt": "0000-00-00T00:00:00.000Z",
"updatedAt": "0000-00-00T00:00:00.000Z"
}GET /api/teams/:teamId/users/:userId
获取团队中的指定用户。
示例响应
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"role": "team-owner",
"createdAt": "0000-00-00T00:00:00.000Z",
"updatedAt": "0000-00-00T00:00:00.000Z"
}POST /api/teams/:teamId/users/:userId
更新团队中用户的角色。
参数
role:用户在团队中的角色(team-member|team-view-only|team-manager)。
请求体
{
"role": "team-member"
}示例响应
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"role": "team-member",
"createdAt": "0000-00-00T00:00:00.000Z",
"updatedAt": "0000-00-00T00:00:00.000Z"
}DELETE /api/teams/:teamId/users/:userId
从团队中移除用户。
示例响应
{
"ok": true
}GET /api/teams/:teamId/websites
获取属于团队的所有网站。
参数
search:(可选字符串)搜索内容。page:(可选数字,默认 1)指定页码。pageSize:(可选字符串)指定返回结果数量。
示例响应
{
"data": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "aol",
"domain": "aol.com",
"shareId": "xxxxxxxxxxxx",
"resetAt": null,
"userId": null,
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"createdBy": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"createdAt": "2020-07-19T06:53:33.482Z",
"updatedAt": "2024-06-24T05:00:00.279Z",
"deletedAt": null,
"createUser": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"username": "bob@aol.com"
}
}
],
"count": 1,
"page": 1,
"pageSize": 20
}