1. エンティティ リソース

エンティティ リソース

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

システム内の各エンティティは、エンティティ リソースによって表されます。このリソースは、エンティティの状態の取得、エンティティの作成、更新、または削除に使用できます。

POSTGETHEADPUTDELETE の各メソッドを使用できます。LOCK および UNLOCK の各メソッドはサポートされなくなりました。

POST /api/entities

新しいエンティティを追加します。関連付けられたエンティティ定義リソースへのリンクが必要です。self プロパティは無視されるため省略できます。リクエスト本文に id が含まれている場合は、リクエストは UPSERT である可能性があるものとして扱われます。id を省略し、identifier のみを指定すると、リクエストは既存のエンティティを更新する代わりに競合を返します。次に、リクエストはエンティティの存在を確認し、応答が肯定的である場合は、提供された本文要素に基づいてエンティティを更新します。

処理に成功すると、201 Created response が返されます。この場合、Location ヘッダーには、新しく作成されたリソースの URL が含まれます。UPSERT 機能がトリガーされた場合、応答は提供された情報に応じて変化します。id が存在する場合、ヘッダーには通常の POST 応答と同じ Location プロパティが含まれます。identifier が使用されているヘッダーには、更新された識別子を値として持つ X-Global-Identifier プロパティが含まれます。

![ヒント] リレーションがネストされていない限り、エンティティの作成中にリレーションを設定することはできません。また、この機能は REST API を介してのみ利用可能であり、Web クライアント SDK を介して利用することはできません。ネストされていないリレーションの場合、更新されるリレーションごとに 1 回の呼び出しが行われます。

要求の例:

POST http://<hostname>/api/entities
Host: hostname
Content-Type: application/json

{
"properties":{
"Property1":"Some value",
"Property2":42
},
"relations": {
"FinalLifeCycleStatusToAsset": {
"parent": {
"href": "http://<hostname>/api/entities/{id}"
}
}
},
"entitydefinition":{
"href":"http://<hostname>/api/entitydefinitions/EntityDefinition1"
}
}

応答の例:

HTTP/1.1 201 Created
Location: http://<hostname>/api/entities/2

GET /api/entities/id

エンティティの状態を含むエンティティ オブジェクトを返します。

要求の例:

GET http://<hostname>/api/entities/1
Host: hostname
Accept: application/json

応答の例:

HTTP/1.1 200 OK
Content-Length: content length
Content-Type: application/json; charset=utf-8
ETag: "hash string"

{
"id":100,
"identifier": "00amyWGct0y_ze4lIsj2Mw",
"properties":{
"Property1":"Some value",
"Property2":42
},
"relations":{
"Parent":{
"href":"http://<hostname>/api/entities/1/relations/Parent"
}
},
"self":{
"href":"http://<hostname>/api/entities/1"
},
"entitydefinition":{
"href":"http://<hostname>/api/entitydefinitions/EntityDefinition1"
}
}

GET /api/entities/identifier/uniqueid

一意の識別子によってエンティティを取得します。応答は、GET /api/entities/id からの応答と同じです。

要求の例:

GET http://<hostname>/api/entities/identifier/00amyWGct0y_ze4lIsj2Mw
Host: hostname
Accept: application/json

PUT /api/entities/identifier/uniqueid

要求で送信された状態でエンティティを更新します。処理に成功すると、サーバーは 204 No Content で応答します。要求の本文には、エンティティ オブジェクトとそのエンティティ定義を含める必要があります。idrelations、および self の各プロパティは無視されるため省略できます。

要求の例:

PUT http://<hostname>/api/entities/identifier/00amyWGct0y_ze4lIsj2Mw
Host: hostname
Content-Type: application/json
{
"properties":{
"Property2":43
},
"entitydefinition":{
"href":"http://<hostname>/api/entitydefinitions/EntityDefinition1"
}
}

応答の例:

HTTP/1.1 204 No Content

DELETE /api/entities/identifier/uniqueid

エンティティを削除します。処理に成功すると、サーバーは 204 No Content で応答します。

要求の例:

DELETE http://<hostname>/api/entities/identifier/00amyWGct0y_ze4lIsj2Mw

応答の例:

HTTP/1.1 204 No Content

PUT /api/entities/id

要求で送信された状態でエンティティを更新します。処理に成功すると、サーバーは 204 No Content で応答します。要求の本文には、エンティティ オブジェクトを含める必要があり、すべてのプロパティが必要です。identitydefinitionrelations、および self の各プロパティは無視されるため省略できます。

要求の例:

PUT http://<hostname>/api/entities/2
Host: hostname
Content-Type: application/json
{
"properties":{
"Property2":43
},
"entitydefinition":{
"href":"http://<hostname>/api/entitydefinitions/EntityDefinition1"
}
}

応答の例:

HTTP/1.1 204 No Content

DELETE /api/entities/id

エンティティを削除します。処理に成功すると、サーバーは 204 No Content で応答します。

要求の例:

DELETE http://<hostname>/api/entities/2

応答の例:

HTTP/1.1 204 No Content

POST /api/entities/{entityId}/copy

id=entityId のエンティティをターゲット エンティティにコピーします。ターゲット エンティティは、新しいエンティティでも既存のエンティティでもかまいません。

リクエストの一般的な本文の構造は次のとおりです。

{
// Identifier of a copy profile that could be used for copying of an entity
"copy_profile_identifier": string 

// Id of an entity that will be updated by copying values from an original entity
"copy_profile_id": long? 

// Id of an entity that will be updated by copying values from an original entity
"destination_entity_id": long? 

// Relations copy options 
"relation_copy_options": 
[
{
// Relation name
"relation": string 

// Copy method
"method": string 

// Copy settings of related entities (the entire general structure)
"related_copy_options": {} 
}
]

// Properties copy options: an array of properties configurations
"property_copy_options": 
[
{
// Property name
"property": string 

// Copy method
"method": string

// New property value
"new_value": string 
}
]
}
重要
  • すべてのパラメーターはオプションです。
  • コピー プロファイルの ID と識別子の両方を指定すると、後者のみが考慮されます。
  • プロパティとリレーション コピー プロパティのいずれかを指定した場合は、コピー プロファイルの ID と識別子は考慮されません。

使用可能なリレーション コピー メソッドは次のとおりです。

  • 維持: 関連付けられた同じエンティティへの参照を作成します (同じ ID を維持します)。
  • 削除: 空のリレーションを作成します (すべての ID を削除します)。
  • コピー: 関連するエンティティのコピーへの参照を作成します (関連するエンティティをコピーしてリンクします)。
  • 上書き: すべての参照を新しいものに置き換えます (新しい ID を設定します)。
  • 追加: 既存の参照を維持しながら新しい参照を追加します (既存の ID に新しい ID を追加します)。
  • 無視: リレーションをスキップし、宛先エンティティの元の値を維持します (ターゲット エンティティが新しいエンティティの場合、値は null です)。

使用可能なプロパティ コピー メソッドは次のとおりです。

  • 維持: ソース エンティティの値をターゲット エンティティに適用します (既定のメソッド)。
  • 削除: ターゲット プロパティ値を null に設定します。
  • 上書き: ターゲット プロパティ値を新しい値で上書きします。
  • 無視: ソース エンティティの値を無視し、ターゲット エンティティの値を維持します。

次に、さまざまなコピー リクエストの例を示します。リクエストの構造は同じですが、JSON ペイロードのみが変わります。

POST http://<hostname>/api/entities/{entityId}/copy
Host: hostname
Content-Type: application/json

例 1

{
"property_copy_options": [
{
"property": "BlockName",
"method": "Overwrite",
"new_value": "Block A"
}
],
"relation_copy_options": [
{
"relation": "BlockToTask",
"method": "Copy",
"related_copy_options": {
"property_copy_options": [
{
"property": "DoneDate",
"method": "Remove"
}
],
"relation_copy_options": [
{
"relation": "TaskToAssetDeliverables",
"method": "Remove"
}
]
}
}
]
}

例 2

{
"copy_profile_id": 777,
"destination_entity_id": 12345
}

例 3

{
"copy_profile_identifier": "M.EntityCopyProfile.SomeProfile"
}
この記事を改善するための提案がある場合は、 お知らせください!