REST を使用した Apex テストを含むメタデータのリリース
最大 10,000 ファイルまで同時にリリースまたは取得できます。AppExchange パッケージではさまざまな制限が使用されます。API バージョン 43.0 と 44.0 では、AppExchange パッケージに最大 12,500 件のファイルを含めることができます。API バージョン 45.0 では、AppExchange パッケージに最大 17,500 件のファイルを含めることができます。API バージョン 46.0 では、AppExchange パッケージに最大 22,000 件のファイルを含めることができます。API バージョン 47.0 から 50.0 では、AppExchange パッケージに最大 30,000 件のファイルを含めることができます。API バージョン 51.0 以降では、AppExchange パッケージに最大 31,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 要求ヘッダーを 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) を示します。 |