有效利用 Backlog 的 API

大家好,
我是Mandai,Wild团队负责开发工作的成员。
在我们公司,我们使用 Backlog 作为开发工具。Backlog
可以用作 Git、Subversion 等的版本控制服务器,也可以用作进度管理工具,或者用于在 wiki 中整合知识,或者用于创建任务和问题,等等。
我偶尔会使用 API,但我最近脑子有点糊涂了,总是忘记怎么用,所以我粘贴一些我认为可以复制粘贴的代码。
认证
OAuth 2.0 虽然可用,但说实话,我并不使用它。
我主要是在批处理程序中使用,所以别无选择,只能使用 API 密钥请求。
// 使用 curl 获取 curl https://xx.backlog.jp/api/v2/users/myself?apiKey=abcdefghijklmn
使用 PHP 获取 $response = file_get_contents('https://xxx.backlog.jp/api/v2/users/myself?apiKey=abcdefghijklmn');
通过更改子域名和路径,可以轻松访问 GET 请求。
最难的部分在于确定使用哪个 API,因为功能众多且 API 开发完善。
CRUD 操作
Backlog API 是 RESTful 的,因此它明确定义了各种 CRUD 操作的 HTTP 方法。
- 要获取信息,请使用 GET 语句。
- 创建信息时,请使用 POST 方式。
- 要编辑信息,请使用 PUT 或 PATCH 函数。
- 要删除信息,请点击“删除”。
由于 API 端点通常相同,请务必小心,避免因使用错误的 HTTP 方法而删除重要数据。
编辑时使用 PUT 和 PATCH 方法的区别并非在于选择哪一个,而是由 API 决定接受哪种方法,因此Backlog API 文档请查阅
当你想获取信息时
如果要获取信息,请使用 GET 方法。
# 获取空间信息 curl https://[subdomain].backlog.jp/api/v2/space?apiKey=[API KEY]
当你想创建信息时
如果你想创建信息,请使用 POST 方法发送。
# 添加 Wiki 页面 curl -X POST https://[subdomain].backlog.jp/api/v2/wikis?apiKey=[API KEY] -d "projectId=xxx" -d "name=wiki_name" -d "content=hogehoge" # 注册新问题 curl -X POST https://[subdomain].backlog.jp/api/v2/issues?apiKey=[API KEY] -d "projectId=xxx" -d "summary=issue_title" -d "issueTypeId=1" -d "priorityId=3" # 获取类型信息 # 重写子域名、项目 ID 和 API KEY curl https://[subdomain].backlog.jp/api/v2/projects/[xxx]/issueTypes?apiKey=[API KEY] # 获取优先级列表 # 重写子域名和 API KEY curl https://[subdomain].backlog.jp/api/v2/priorities?apiKey=[API KEY]
如果您想编辑信息
如果您想编辑信息,请使用 POST 或 PATCH 方法发送。
具体方法因 API 而异,请参阅相关文档。
# 更新项目信息 # 您可以指定 ProjectID 或 ProjectKey,其中 projectIdOrKey 为指定值 curl -X PATCH https://[subdomain].backlog.jp/api/v2/projects/[projectIdOrKey]?apiKey=[API KEY] -d "name=changed_name" # 将通知标记为已读 curl -X POST https://[subdomain].backlog.jp/api/v2/notifications/[notification_id]/markAsRead?apiKey=[API KEY] # 获取 notification_id curl https://[subdomain].backlog.jp/api/v2/notifications?apiKey=[API KEY]
当你想删除信息时
如果要删除信息,请提交 DELETE 方法。
相反,如果您不指定 DELETE 方法,则除非有意删除(或程序错误),否则信息不会被删除。
# 删除问题 # 可以在 issueIdOrKey 部分指定 ID 或密钥 curl -X DELETE https://[subdomain].backlog.jp/api/v2/issues/[issueIdOrKey]?apiKey=[API 密钥]
一个用于检查 API 操作的实用工具
Firefox 是执行 API 的一个实用工具。
您可能对 Chrome 浏览器很熟悉,因为它是一款非常流行的浏览器应用,但您一直都在使用它吗?
当您在 Chrome 中运行 Backlog API 时,API 返回的结果会显示乱码,而且从 55 版本左右开始,就无法更改字符编码了,所以这个问题无法解决。
(可能是因为返回结果不是 HTML,因此没有指定编码。)
在这方面,Firefox 可以显示无乱码的文本,并且在某个时候引入了一种自动解析 JSON 数据的机制,使其更容易阅读。
此外,Chrome 和 Firefox 都有许多 RESTful API 的插件和扩展程序,因此使用您熟悉的浏览器将加快您的开发速度。
我经常使用这些工具进行 API 开发,但我仍然倾向于使用 curl 创建 shell 脚本作为测试用例,因此我无法提供任何推荐的 API 浏览器信息……
概括
我已简要概括,您觉得如何?
除了任务管理和进度管理之外,你还可以通过将 JSON 粘贴到 Wiki 中来将其用作数据库,或者用作文件存储空间,而且它还可以用于开发工具以外的其他用途,这取决于你的想象力。
虽然粘贴 JSON 数据进行信息交换对于复杂的系统来说并非理想之选,但我发现它作为数据存储位置非常实用,尤其是在使用小型 shell 脚本自动化执行个人任务时。
当需要在多个服务器上运行复杂的流程时,不断变化的数据库连接限制会非常麻烦,而 API 访问的便捷性则使其变得非常方便。
就这样。
1
