有效利用 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
加载中...
1票,平均分:1.00/11
3,473
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

万代洋一

我的主要工作是开发社交游戏的Web API,但幸运的是,我也有机会参与其他各种任务,包括市场营销。
我在Beyond中的图像版权采用CC0协议。