REST を使用した Apex テストを含むメタデータのリリース
リリースのすべての操作を処理する要求を開始するには、deployRequest REST リソースを使用してリリースします。
最大 10,000 ファイルまで同時にリリースまたは取得できます。AppExchange パッケージでは異なる制限が使用され、最大 35,000 件のファイルを含めることができます。リリースまたは取得する .zip ファイルの最大サイズは 39 MB です。展開したフォルダ内の非圧縮ファイルの場合、サイズ制限は 400 MB です。
- URI
- https://host/services/data/vXX.0/metadata/deployRequest
- 形式
- JSON
- HTTP メソッド
- POST
- 認証
- Authorization: Bearer token
deployOptions パラメータ
| パラメータ | 説明 |
|---|---|
| allowMissingFiles | Boolean。package.xml に指定されているファイルが .zip ファイル内に存在しない場合、リリースを継続するかどうかを指定します。本番組織へのリリースでは、この引数を設定することはできません。 |
| autoUpdatePackage | 将来の使用のために予約されています。 |
| checkOnly | Boolean。デフォルトは false です。コンポーネントを対象組織に保存せずにコンポーネントのテストリリース (検証) を実行するには、true に設定します。検証では、リリースで生成されるテストの結果を確認できますが、変更はコミットされません。テストに合格して検証が完了したら、テストを再実行することなくリリースできます。「テストなしの最近検証されたコンポーネントのリリース」を参照してください。 |
| ignoreWarnings | Boolean。1 つ以上の警告を無視してリリースの正常な完了を許可するか (true)、否か (false) を示します。デフォルトは false です。 警告の DeployMessage オブジェクトには次の値が含まれます。
警告が発生し、ignoreWarnings が true に設定されている場合は、DeployMessage の success 項目は true です。ignoreWarnings が false に設定されている場合、success は false に設定され、警告はエラーとして処理されます。 |
| performRetrieve | 将来の使用のために予約されています。 |
| purgeOnDelete | Boolean。true の場合、destructiveChanges.xml マニフェストファイルの削除されたコンポーネントはごみ箱に保存されません。代わりに、即座に削除の対象となります。 このオプションは Developer Edition 組織または Sandbox 組織でのみ機能します。本番組織では機能しません。 |
| rollbackOnError | Boolean。エラーが発生した場合、ロールバックを完了するか (true)、否か (false) を示します。false の場合、エラーなしで実行できるアクションはすべて実行され、残りのアクションではエラーが返されます。本番組織にリリースする場合は、このパラメータは true に設定されている必要があります。デフォルトは、false です。 |
| runTests | String[]。リリース時に実行される Apex テストのリスト。クラス名 (1 インスタンスあたり 1 つの名前) を指定します。また、クラス名にはドット表記で名前空間を指定することもできます。詳細は、「リリースでのテストのサブセットの実行」を参照してください。 このオプションを使用するには、testLevel を RunSpecifiedTests に設定します。 |
| singlePackage | Boolean。指定された .zip ファイルが指し示すディレクトリ構造が 1 つのパッケージを持つか (true)、パッケージのセットを持つか (false)) を示します。 |
| testLevel | TestLevel (string 型の列挙)。省略可能。リリースの一環として実行するテストを指定します。テストレベルは、リリースパッケージに存在するコンポーネントの種類に関係なく強制適用されます。有効な値は、次のとおりです。
テストレベルを指定しないと、デフォルトのテスト実行動作が使用されます。「リリースでのテストの実行」を参照してください。 |
リクエストボディ: メタデータのリリース
メタデータをリリースすると、要求にはリリースのパラメータ、およびコンポーネントのディレクトリとマニフェストを含む .zip ファイルの両方が含まれます。ヘッダーを Content-Type: multipart/form-data に設定します。
この POST 要求の例では、リリースを開始する deployRequest オブジェクトを作成します。
- POST 要求ヘッダーを Content-Type: multipart/form-data に設定し、要求のさまざまな下位区分をカプセル化するための boundary を定義します。
- 最初の境界の後の下位部分では、JSON 要求により、リリースのパラメータを渡すための deployOptions 子オブジェクトが作成されます。
- 2 番目の境界の後の下位部分では、マニフェストとコンポーネントディレクトリを含む .zip ファイルを指定します。
1POST /services/data/v48.0/metadata/deployRequest
2Authorization: Bearer 00D....
3Content-Type: multipart/form-data; boundary=--------------------------BOUNDARY
4----------------------------BOUNDARY
5Content-Disposition: form-data; name="json"
6Content-Type: application/json
7{
8 "deployOptions" :
9 {
10 "allowMissingFiles" : false,
11 "autoUpdatePackage" : false,
12 "checkOnly" : false,
13 "ignoreWarnings" : false,
14 "performRetrieve" : false,
15 "purgeOnDelete" : false,
16 "rollbackOnError" : false,
17 "runTests" : null,
18 "singlePackage" : true,
19 "testLevel" : "RunAllTestsInOrg"
20 }
21 }
22----------------------------BOUNDARY
23Content-Disposition: form-data; name="file"; filename="deploy.zip"
24Content-Type: application/zip
25
26//Contents of deploy.zip
27----------------------------BOUNDARY--レスポンスボディ: メタデータのリリース
201 (作成済み) の HTTP 状況コードが返された場合は、要求が成功し、処理されるリリースが作成されたことを意味します。
1{ "id" : "0Afxx00000001VPCAY",
2 "deployOptions" :
3 { "checkOnly" : false,
4 "singlePackage" : false,
5 "allowMissingFiles" : false,
6 "performRetrieve" : false,
7 "autoUpdatePackage" : false,
8 "rollbackOnError" : true,
9 "ignoreWarnings" : false,
10 "purgeOnDelete" : false,
11 "runAllTests" : false },
12 "deployResult" :
13 { "id" : "0Afxx00000001VPCAY",
14 "success" : false,
15 "checkOnly" : false,
16 "ignoreWarnings" : false,
17 "rollbackOnError" : true,
18 "status" : "Pending",
19 "runTestsEnabled" : false,
20 "done" : false } }deployResult パラメータ
| パラメータ | 説明 | |
|---|---|---|
| id | ID。リリースされるコンポーネントの ID。 | |
| canceledBy | ID。リリースをキャンセルしたユーザの ID。 | |
| canceledByName | String。リリースをキャンセルしたユーザの氏名。 | |
| checkOnly | Boolean。組織で一切の変更を行わず、リリースされたファイルの有効性を確認するためにこのリリースが使用されているか (true)、否か (false) を示します。確認のみのリリースでは、いずれのコンポーネントもリリースせず、組織の変更も一切行いません。 | |
| completedDate | DateTime。リリースプロセスの終了時期を示すタイムスタンプ。 | |
| createdBy | ID。リリースを作成したユーザの ID。 | |
| createdByName | String。リリースを作成したユーザの氏名。 | |
| createdDate | DateTime。リリース要求の受信時期を示すタイムスタンプ。 | |
| details | DeployDetails。GET 要求に ?includeDetails=true がクエリとして追加されている場合は、進行中または終了済みのリリースの詳細を示します。 | |
| done | Boolean。指定された id に対するリリース要求の処理がサーバで完了したかどうかを示します。 | |
| errorMessage | String。errorStatusCode 項目に値がある場合は、それに対応するメッセージ。 | |
| errorStatusCode | String。リリース要求中にエラーが発生した場合、状況コードが返され、その状況コードに対応するメッセージが errorMessagefield で返されます。 | |
| ignoreWarnings | Boolean。省略可能。デフォルトは false です。リリース中に警告が発生しても処理を続行するかどうかを指定します。本番組織へのリリースでは、この引数を true に設定することはできません。 | |
| lastModifiedDate | DateTime。リリースプロセスの最後の更新時期を示すタイムスタンプ。 | |
| numberComponentErrors | Int。リリースプロセスでリリースされたコンポーネントの数。リリースの進行状況を見積もるには、この値を numberComponentsTotal 値で使用します。 | |
| numberComponentsTotal | Int。リリースのコンポーネントの合計数。リリースの進行状況を見積もるには、この値を numberComponentsDeployed 値で使用します。 | |
| numberTestErrors | Int。このリリース中にエラーを生成した Apex テストの数。 | |
| numberTestsCompleted | このリリースで完了した Apex テストの数。リリースのテストの進行状況を見積もるには、この値を numberTestsTotal 値で使用します。 | |
| numberTestsTotal | Int。このリリースの Apex テストの合計数。リリースのテストの進行状況を見積もるには、この値を numberTestsCompleted 値で使用します。この項目の値は、リリースされるコンポーネントのテストが開始されるまで正確ではありません。 | |
| runTestsEnabled | Boolean。Apex テストがこのリリースの一部として実行されたか (true)、否か (false) を示します。テストは、リリースの一部として自動的に実行されるか、deployOptions 子オブジェクトで実行するように設定できます。 | |
| rollbackOnError | Boolean。デフォルトは true です。エラーが発生した場合、ロールバックを完了するか (true)、否か (false) を示します。false の場合、エラーなしで実行できるアクションのセットはすべて実行され、残りのアクションではエラーが返されます。本番組織にリリースする場合は、このパラメータは true に設定されている必要があります。 | |
| startDate | DateTime。リリースプロセスの開始時期を示すタイムスタンプ。 | |
| stateDetail | String。リリースされているコンポーネント、または実行している Apex テストクラスを示します。 | |
| status | リリースの現在の状況を示します。有効な値は、次のとおりです。
|
|
| success | Boolean。リリースが正常に行われたか (true)、否か (false) を示します。 |