POST: コレクションにインスタンスを作成する
このトピックでは、POST操作を使用してエンティティを作成する手順について説明します。
概要
インスタンスを作成するには、コレクションに対してPOSTを実行し、少なくとも必須フィールドを含むJSON文字列を渡します。
インスタンスを作成するには:
-
フィールドメタデータリソースを使用します。これにより、エンティティ/リソースで使用可能なフィールドが返されます。
注: インスタンスに対して返されるデータには、POSTまたはPUTできない計算フィールドが含まれている場合があります。
-
すべての必須フィールドと初期化する追加フィールドのデータを含む文字列を作成します。JSON入力は、コレクションのメンバーに対するGET操作によって返されるものと同じ形式である必要があります。
-
データをコレクションにPOSTします。
-
成功すると、HTTPの戻り値は201になります。返される文字列は、新しいインスタンスの完全なデータです。新しいインスタンスには、POST入力で指定されていないフィールドの標準設定値があります。Locationヘッダーには、作成されたインスタンスのURIが含まれています。
失敗すると、ステータスコードとエラーメッセージが返されます。
例
-
リクエスト: 作成するエンティティオブジェクトのデータ配列。
-
応答: 正常に作成されたエンティティオブジェクトのデータ配列。各オブジェクトにはIDが含まれています。
*** Request ***
POST .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/defects { "data": [{ "parent": { "type": "work_item_root", "id": "1001" }, "release": { "type": "release", "id": "1002" }, "description": "When advancing to last page in catalog, an error occurs. There is no way to go back a page.", "severity": { "type": "list_node", "id": "1002" }, "phase": { "type": "phase", "id": "1001" }, "name": "When advancing to last page in catalog, an error occurs." }, { "parent": { "type": "work_item_root", "id": "1001" }, "release": { "type": "release", "id": "1002" }, "description": "Takes too long to load shopping cart. It can take more than 45 seconds.", "severity": { "type": "list_node", "id": "1002" }, "phase": { "type": "phase", "id": "1001" }, "name": "Takes too long to load shopping cart." }] }
*** Response ***
{ "total_count": 2, "data": [{ "type": "defect", "id": "1071", }, { "type": "defect", "id": "1070", }], "exceeds_total_count": false }
この例は、存在しないリリースID4321を参照しながら不具合を作成しようとすると、部分的に成功することを示しています。
-
リクエスト: 作成するエンティティオブジェクトのデータ配列。
-
応答: 正常に作成されたエンティティオブジェクトのデータ配列。
-
各オブジェクトにはIDが含まれています。
-
また、作成が成功しなかったエンティティのエラーオブジェクトのエラー配列。
リクエストが部分的に実行され、複数のエンティティがエラーで終了した場合、インデックス (entity_index) が返されます。 entity_indexは、エラーが参照するリクエスト「データ」配列内のエンティティのインデックスを示します。インデックスは1ではなく0から始まります。
-
*** Request ***
POST.../api/shared_spaces/<space_id>/workspaces/<workspace_id>/defects { "data": [{ "parent": { "type": "work_item_root", "id": "1001" }, "release": { "type": "release", "id": "1002" }, "description": "When advancing to last page in catalog, an error occurs. There is no way to go back a page.", "severity": { "type": "list_node", "id": "1002" }, "phase": { "type": "phase", "id": "1001" }, "name": "When advancing to last page in catalog, an error occurs." }, { "parent": { "type": "work_item_root", "id": "1001" }, "release": { "type": "release", "id": "4321" }, "description": "Takes too long to load shopping cart. It can take more than 45 seconds.", "severity": { "type": "list_node", "id": "1002" }, "phase": { "type": "phase", "id": "1001" }, "name": "Takes too long to load shopping cart." }] }
*** Response ***
HTTP/1.1 409 Conflict
{
"total_count": 1,
"data": [{
"type": "defect",
"id": "1072"
}],
"exceeds_total_count": false,
"errors": [{
"index": 1,
"error_code": "platform.entity_not_found",
"correlation_id": "31k7vq1wp3kk8idyy1lo39gw6",
"description": "The entity by id 4321 of type release does not exist",
"description_translated": "The entity by id 4321 of type release does not exist",
"properties": {
"entity_type": "release",
"entity_id": "4321"
},
"stack_trace": "com.Micro Focus.mqm.bl.platform.exception.EntityNotFoundException: The entity by id 4321 of type release does not exist..."
}]
}
この例は、スペース管理者がスペースコンテキストでワークスペースを作成する方法を示しています。
-
リクエスト: 作成するワークスペースオブジェクトのデータ配列。
-
応答: 正常に作成されたワークスペースオブジェクトのデータ配列。各オブジェクトにはIDが含まれています。
POST .../api/shared_spaces/1001/workspaces
{"data":[ { "name":"myWorkspace" } ] }
参照情報: