有效利用 Backlog 的 API

你好。
我是Mandai,负责Wild 开发团队。
在我们公司,我们使用 Backlog 作为开发工具。Backlog
可以用作 Git、Subversion 等版本控制系统的仓库服务器,也可以用作进度管理工具,用于在 Wiki 中汇总知识,以及在 Issues 中累积任务。它是一款功能强大的工具。
我偶尔会使用 API,但我最近脑子有点糊涂了,总是忘记怎么用,所以我粘贴一些我认为可以复制粘贴的代码。
认证
虽然提供了 OAuth2.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 时,结果会显示乱码。然而,自 55 版本起,Chrome 已经无法更改字符编码,因此这个问题无法解决。
(可能是因为数据不是 HTML,所以没有指定编码。)
在这方面,Firefox 可以显示无乱码的文本,并且在某个时候引入了一种自动解析 JSON 数据的机制,使其更容易阅读。
此外,Chrome 和 Firefox 都有许多 RESTful API 的插件和扩展程序,因此使用您熟悉的浏览器将加快您的开发速度。
我经常使用这些工具进行 API 开发,但我仍然倾向于使用 curl 创建 shell 脚本作为测试用例,因此我无法提供任何推荐的 API 浏览器信息……
概括
我已简要概括,您觉得如何?
除了任务管理和进度管理之外,你还可以通过将 JSON 粘贴到 Wiki 中来将其用作数据库,或者用作文件存储空间,而且它还可以用于开发工具以外的其他用途,这取决于你的想象力。
虽然在正规系统中不建议通过粘贴 JSON 数据来交换信息,但我发现它在个人使用小型 shell 脚本自动化任务时,作为数据存储库非常有用。
当需要在多个服务器上运行复杂的流程时,每次都更改数据库连接限制会很麻烦,而 API 访问的便捷性使得人们很容易直接放弃使用 JSON 数据。
就是这样。
1