本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
团队 API
使用团队 API 在亚马逊托管 Grafana 工作空间中与团队合作。此 API 中的所有操作都要求您具有管理员角色。
注意
要在亚马逊托管 Grafana 工作空间中使用 Grafana API,您必须拥有有效的 Grafana API 令牌。您可以将其包含在 API 请求的Authorization
字段中。有关如何创建令牌来验证您的 API 调用的信息,请参阅使用令牌进行身份验证。
使用分页进行团队搜索
GET /api/teams/search?perpage=50&page=1&query=myteam
或者
GET /api/teams/search?name=myteam
示例请求
GET /api/teams/search?perpage=10&page=1&query=myteam HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
使用查询参数
参数的默认值为 1000,perpage
page
参数的默认值为 1。
响应中的totalCount
字段可用于对球队列表进行分页。例如,如果totalCount
是 100 个团队并且perpage
参数设置为 10,则有 10 页的团队。
该query
参数是可选的,返回name
字段中包含查询值的结果。带空格的查询值需要经过网址编码。例如,query=my%20team
。
使用名称参数
如果name
参数与该name
字段匹配,则该参数返回一支球队。
响应示例
HTTP/1.1 200 Content-Type: application/json { "totalCount": 1, "teams": [ { "id": 1, "orgId": 1, "name": "MyTestTeam", "email": "", "avatarUrl": "\/avatar\/3f49c15916554246daa714b9bd0ee39", "memberCount": 1 } ], "page": 1, "perPage": 1000
状态码:
-
200 — 已创建
-
401 — 未经授权
-
403-权限被拒绝
-
404 — 未找到小组(如果按姓名搜索)
按 ID 获取队伍
GET /api/teams/:id
示例请求
GET /api/teams/1 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例
HHTTP/1.1 200 Content-Type: application/json { "id": 1, "orgId": 1, "name": "MyTestTeam", "email": "", "created": "2017-12-15T10:40:45+01:00", "updated": "2017-12-15T10:40:45+01:00" }
添加一支球队
团队成员必须是独一无二的。name
该name
字段为必填字段,email
和orgId
字段为可选字段。
POST /api/teams
示例请求
POST /api/teams HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "name": "MyTestTeam", "email": "email@test.com", "orgId": 2 }
响应示例
HTTP/1.1 200 Content-Type: application/json {"message":"Team created","teamId":2}
状态码:
-
200 — 已创建
-
401 — 未经授权
-
403-权限被拒绝
-
409-队伍名称已存在
更新小组
PUT /api/teams/:id
只能更新name
和email
字段。
示例请求
PUT /api/teams/2 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "name": "MyTestTeam", "email": "email@test.com" }
响应示例
HTTP/1.1 200 Content-Type: application/json {"message":"Team updated"}
状态码:
-
200 — 已创建
-
401 — 未经授权
-
403-权限被拒绝
-
404 — 未找到小组
-
409-队伍名称已存在
按 ID 删除球队
DELETE /api/teams/:id
示例请求
DELETE /api/teams/2 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例
HTTP/1.1 200 Content-Type: application/json {"message":"Team deleted"}
状态码:
-
200 — 已创建
-
401 — 未经授权
-
403-权限被拒绝
-
404 — 未找到小组
获取团队成员
GET /api/teams/:teamId/members
示例请求
GET /api/teams/1/members HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例
HTTP/1.1 200 Content-Type: application/json [ { "orgId": 1, "teamId": 1, "userId": 3, "email": "user1@email.com", "login": "user1", "avatarUrl": "\/avatar\/1b3c32f6386b0185c40d359cdc733a7" }, { "orgId": 1, "teamId": 1, "userId": 2, "email": "user2@email.com", "login": "user2", "avatarUrl": "\/avatar\/cad3c68da76e45d10269e8ef02f8e7" } ]
状态码:
-
200 — 已创建
-
401 — 未经授权
-
403-权限被拒绝
添加团队成员
POST /api/teams/:teamId/members
示例请求
POST /api/teams/1/members HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "userId": 2 }
响应示例
HTTP/1.1 200 Content-Type: application/json {"message":"Member added to Team"}
状态码:
-
200 — 已创建
-
400-用户已加入团队
-
401 — 未经授权
-
403-权限被拒绝
-
404 — 未找到小组
从团队中移除成员
DELETE /api/teams/:teamId/members/:userId
示例请求
DELETE /api/teams/2/members/3 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例
HTTP/1.1 200 Content-Type: application/json {"message":"Team Member removed"}
状态码:
-
200 — 已创建
-
401 — 未经授权
-
403-权限被拒绝
-
404 — 未找到团队/未找到团队成员
获取团队偏好
GET /api/teams/:teamId/preferences
示例请求
GET /api/teams/2/preferences HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
响应示例
HTTP/1.1 200 Content-Type: application/json { "theme": "", "homeDashboardId": 0, "timezone": "" }
更新团队偏好
PUT /api/teams/:teamId/preferences
示例请求
PUT /api/teams/2/preferences HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "theme": "dark", "homeDashboardId": 39, "timezone": "utc" }
JSON 正文架构:
-
主题-指定
light
dark
、或空字符串以使用默认主题。 -
homeDashboardId— 仪表板
:id
的数字。默认值是 0。 -
时区-指定
utc
browser
、或空字符串以使用默认值。
省略参数会导致当前值被系统默认值替换。
响应示例
HTTP/1.1 200 Content-Type: text/plain; charset=utf-8 { "message":"Preferences updated" }