カスタムフィールドで課題を取得する
すべてのカスタムフィールドの値を含む課題を取得するには、対象の課題に対して GET リクエストを送信します。課題は、idReadable 値(例: SP-8)またはエンティティ id(例: 2-7)で参照できます。
GET /api/issues/{issueID}?[fields]
課題のある操作の詳細を読む。
fields リクエストパラメーターは、要求されたエンティティに対して返される属性をコンマ区切りで指定したリストです。この例では、エンティティは Issue です。
返されるエンティティのサポートされている属性セットを任意にリクエストできます。課題の詳細については、サポートされている属性のリストを参照してください。
この使い方では、次のデータをリクエストします。
fields=id,idReadable,summary,customFields(id,projectCustomField(field(name)),value(name,login,fullName))
$type — エンティティタイプ。YouTrack は、リクエストで明示的に指定したかどうかに関わらず、レスポンス内のすべてのエンティティの $type を返します。
id — データベースで返されたエンティティの一意の ID。
idReadable — UI に表示される課題 ID、たとえば SP-8
summary — 課題の概要。
customFields — 課題のカスタムフィールドのコレクションを含む、返された Issue エンティティの属性。これが使い方のターゲットです。
customFields(...) 式は fields パラメーターの一部であり、独立したクエリパラメーターではありません。ここでは、各カスタムフィールドに対して以下の属性を要求します。
customFields(id,projectCustomField(field(name)),value(name,login,fullName))
projectCustomField — 各 IssueCustomField には、特定の課題の ProjectCustomField の設定が含まれています。
field — 各 ProjectCustomField には、特定のプロジェクトにおける CustomField の設定が含まれています。
projectCustomField(field(name)) — カスタムフィールド定義の名前を返します。たとえば、Priority、State、Assignee です。
value — 課題のカスタムフィールド値を格納します。フィールドの種類に応じて、プリミティブ値、リンクされたエンティティ、値のコレクションが含まれます。
カスタムフィールドの階層構造について詳しくはこちらを参照します。
最終リクエストは次のとおりです。
curl -X GET \
'https://example.youtrack.cloud/api/issues/SP-8?fields=id,idReadable,summary,customFields(id,projectCustomField(field(name)),value(name,login,fullName))' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <YouTrack_token>' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json'
応答は次のようになります。
この例では、課題には次のカスタムフィールドが含まれています: Priority、State、Assignee、Subsystem、Fix versions、Fixed in build
{
"id":"2-7",
"idReadable":"SP-8",
"summary":"Issue from REST #1",
"$type":"Issue",
"customFields":[
{
"id":"92-1",
"$type":"SingleEnumIssueCustomField",
"projectCustomField":{
"id":"92-1",
"$type":"EnumProjectCustomField",
"field":{
"id":"58-1",
"$type":"CustomField",
"name":"Priority"
},
},
"value":{
"id":"67-3",
"$type":"EnumBundleElement",
"name":"Normal"
}
},
{
"id":"92-3",
"$type":"StateIssueCustomField",
"projectCustomField":{
"id":"92-3",
"$type":"StateProjectCustomField",
"field":{
"id":"58-3",
"$type":"CustomField",
"name":"State"
}
},
"value":{
"id":"69-7",
"$type":"StateBundleElement",
"name":"Fixed"
}
},
{
"id":"94-0",
"$type":"SingleUserIssueCustomField",
"projectCustomField":{
"id":"94-0",
"$type":"UserProjectCustomField",
"field":{
"id":"58-4",
"$type":"CustomField",
"name":"Assignee"
}
},
"value":{
"id":"1-2",
"$type":"User",
"name":"John Doe",
"fullName":"John Doe",
"login":"john.doe"
}
},
{
"id":"92-0",
"$type":"SingleOwnedIssueCustomField",
"projectCustomField":{
"id":"92-0",
"$type":"OwnedProjectCustomField",
"field":{
"id":"58-0",
"$type":"CustomField",
"name":"Subsystem"
}
},
"value":{
"id":"134-0",
"$type":"OwnedBundleElement",
"name":"Documentation"
}
},
{
"id":"92-4",
"$type":"MultiVersionIssueCustomField",
"projectCustomField":{
"id":"92-4",
"$type":"VersionProjectCustomField",
"field":{
"id":"58-5",
"$type":"CustomField",
"name":"Fix versions"
}
},
"value":[
{
"id":"133-19",
"$type":"VersionBundleElement",
"name":"2019.1"
}
]
},
{
"id":"92-6",
"$type":"SingleBuildIssueCustomField",
"projectCustomField":{
"id":"92-6",
"$type":"BuildProjectCustomField",
"field":{
"id":"58-7",
"$type":"CustomField",
"name":"Fixed in build"
}
},
"value":{
"id":"135-0",
"$type":"BuildBundleElement",
"name":"48733"
},
}
]
}
カスタムフィールドに関する課題の一覧を取得する
複数の課題に対して同じデータを返すには、エンドポイント URL から {issueID} を削除します。例:
curl -X GET \
'https://example.youtrack.cloud/api/issues?fields=id,summary,customFields(id,projectCustomField(field(name)),value(name))' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <YouTrack_token>' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json'
返される課題のリストをフィルタリングするには、query パラメーターを追加します。例: 特定のプロジェクトから課題のサブセットを返す場合:
curl -X GET \
'https://example.youtrack.cloud/api/issues?fields=id,idReadable,summary,customFields(id,projectCustomField(field(name)),value(name))&query=in:SP' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <YouTrack_token>' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json'
読みやすい ID で単一の号を取得するには、直接リクエストします。例: /api/issues/SP-8?fields=id,idReadable,summary,customFields(id,projectCustomField(field(name)),value(name))
サポートされている検索式の詳細については、照会の構文を参照してください。