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

写这篇文章的人

关于作者

万代洋一

我的主要工作是为社交游戏开发 Web API,但我也很幸运能够做很多其他工作,包括营销。
此外,我在 Beyond 中的肖像权被视为 CC0。