takuya / php-nulab-backlog-api-client
访问Nulab Backlog Api。
Requires
- php: >=8.0
- ext-gd: *
- ext-json: *
- doctrine/inflector: ^2.0
- guzzlehttp/guzzle: >=7.5
- takuya/php-genetator-array-access: ^1.0
Requires (Dev)
- ext-dom: *
- larapack/dd: ^1.1
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-09 08:36:36 UTC
README
目标:使Nulab的Backlog API易于访问,能够获取所有数据。
由于在Backlog的空间和项目内部查找数据很麻烦,因此可以全面查找数据。
基本用法。
<?php use Takuya\BacklogApiClient\BacklogAPIClient; $key = getenv('backlog_api_key'); $space = getenv('backlog_space'); $cli = new BacklogAPIClient($space, $key); $cli->getSpace(); $cli->getIssue(['query_options'=>['projectIds'=>[1,2,3],'count'=>100]]); $cli->getComment("PRJ-234",1)
spaceId 是URL。
$space='http://xxx-your-space.backlog.xxx'
提供的类
提供了两个类文件。
class BacklogAPIClient
更新和获取用class Backlog
获取专用
<?php // Apiで呼び出し use Takuya\BacklogApiClient\BacklogAPIClient; $cli = new BacklogAPIClient($space, $key); $cli->getProject("PRJEKEY"); $cli->getIssue("PRJEKEY-123"); // オブジェクト・モデルでアクセス。 use Takuya\BacklogApiClient\Backlog; $cli = new Backlog($space, $key); $cli->project('PRJKEY'); $cli->issue('PRJKEY-123');
class Backlog
是为ID搜索而创建的。没有实现更新。使用 class BacklogAPIClient
进行更新。
认证
实现了API键的访问。没有实现OAUTH访问键(BEARER令牌)。
特点
使PHPStorm的IDE自动补全可用。
将数据模型创建为Model类。因此可以追踪 空间→项目→任务→评论→通知
的Backlog层次结构。
使用层次结构可以更容易地获取全部数据。
示例
<?php use Takuya\BacklogApiClient\Backlog; $key = getenv('backlog_api_key'); $space = getenv('backlog_space'); $cli = new Backlog($space, $key); // スペースの取得->プロジェクト一覧->課題一覧 foreach ($cli->space()->projects(Backlog::PROJECTS_ONLY_MINE) as $prj){ foreach ($prj->issues() as $issue) { foreach ($issue->comments() as $comment) { print([ $prj->id, $issue->id, $comment->id] )} } }
自动补全示例
自动补全Backlog API的函数名。
$cli = new BacklogAPIClient($space, $key);
$cli->...

示例
API是通过打开Backlog并查看地址来使用的。
打开任务评论时的地址如下。
https://example.backlog.com/view/MYPRJ-40#comment-8408
可以从地址中读取以下信息。
{ "スペースKey":"example", "プロジェクトKey": "MYPRJ", "課題Key": "40", "コメントID": "8408" }
当API文档中写有ProjectIdOrKey
时,表示ProjectId或ProjectKey。 ProjectKey
和ProjectId
似乎是1对1对应。使用上述信息访问API。
例如,如下使用。
<?php // API呼び出し use Takuya\BacklogApiClient\BacklogAPIClient; $space = 'example'; $key = 'YOUR_API_KEY'; $cli = new BacklogAPIClient($space, $key); ## プロジェクト取得 $cli->getProject("MYPRJ"); ## 課題取得 $cli->getIssue("MYPRJ-40");
基本上,通过ID
比通过Key
更容易访问。
因为大多数API允许通过指定ID进行搜索的请求参数。例如,projectIds[]
或IssueIds[]
等。
因此,创建了用于相互转换ID和Key的方法。
<?php use Takuya\BacklogApiClient\Backlog; $cli = new Backlog($space, $key); $project_id = $cli->projectIdByKeyName("MYPRJ");
API列表
将API的名称、方法和实际API的对应表放入api.html
中。
日期和时间
Backlog的API通过 created
/ updated
返回日期。所有都是UTC。
通过github安装
composer config repositories.'php-nulab-backlog-api-client' \
vcs https://github.com/takuya/php-nulab-backlog-api-client
composer require takuya/php-nulab-backlog-api-client:master
composer install
通过packagist使用composer安装
composer require takuya/php-nulab-backlog-api-client
开发
安装、测试和开发。
## clone git clone git@github.com:takuya/php-nulab-backlog-api-client.git cd php-nulab-backlog-api-client composer install ## generate api from backlog WebSite. composer run-script gen_api_methods ## Test api methods. export backlog_api_key='YOUR_API_KEY' export backlog_space='xxxspace' composer run-script test ## test some test case php vendor/bin/phpunit --filter get_space
示例
更新时的示例
图片上传示例
上传图片,并创建包含图片的评论。
$api = new BacklogAPIClient($space, $key); $part = [ 'name'=>"file", 'contents' => file_get_contents(__DIR__.'/../../../../sample.jpg'), "filename"=>"sample.jpg" ]; $param = ['multipart' => [$part]]; $ret = $api->postAttachmentFile($param); $params = [ 'content'=>"画像を貼り付ける\nサブスクに気をつけて\n![image][sample.jpg]\n", 'attachmentId[]'=>$ret->id, ]; $ret = $api->addComment($key,$params);