この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
カスタム API エンドポイントに期待どおりにアクセスできない場合は、このページを活用して根本原因を特定してください。以下のチェックリストは、カートリッジの構造 (フォルダー構造など)、必要なファイル、およびリクエストを確認するためのものです。ただし、実装自体は含まれていません。
これらの問題によりエンドポイントが登録されないため、受信リクエストは次のペイロードを含む 404 - Not Found レスポンスになります。
1{
2 "title": "Resource Not Found",
3 "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/resource-not-found",
4 "detail": "Could not find requested resource"
5}推奨されるアプローチ: エンドポイント登録の問題を調査するには、カスタム API ステータスレポートを使用します。このステータスレポートは、登録できなかったエンドポイントについて詳細なエラー情報を提供します。これには、問題の迅速な特定と解決に役立つ具体的なエラーコードが含まれます。
カスタム API ステータスレポートで問題を解決するための十分な情報が得られない場合は、次の項目を手動で確認します。
rest-apis フォルダーは含まれていますか?rest-apis フォルダーには少なくとも 1 つのサブフォルダーが含まれていますか?rest-apis のサブフォルダー名は英数字小文字またはハイフンのみで構成されていますか?rest-apis のサブフォルダーには、マッピングファイルと、少なくとも 1 つのスキーマファイルおよび実装スクリプトが含まれていますか?1.0.1 → URL バージョン v1)securitySchemes の部分は指定されていますか?operationId を含む、少なくとも 1 つのエンドポイントが指定されていますか?securityフィールドは、グローバルに、またはエンドポイントごとに指定されていますか。ShopperToken または AmOAuth2 がセキュリティスキームとして使用されていますか?c_ で始まり、英数字、ハイフン、ピリオド、またはアンダースコアのみで構成されていますか?siteId と locale のシステムパラメーターは、スキーマファイルで定義されていますか?
type: string と minLength: 1 を含む schema フィールドがありますか?c_ で始まりますか?operationId 属性) を参照してください。endpoint プロパティの値は、スクリプト内の機能名およびスキーマ内の operationId と一致していますか?上記のチェックリストでエラーが判別できない場合は、ログメッセージを確認します。登録に失敗するたびに、対応するログメッセージが作成されます。
CustomApiRegistry」と入力します。受信リクエストは処理され、コントラクトに照らして検証されるため、次のエラーが発生する可能性があります。
1{
2 "title": "Bad Request",
3 "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/undefined-query-parameter",
4 "detail": "Found query parameter(s) not defined in the schema: 'c_type'"
5}このタイプのエラーは、通常、リクエストパラメーターの欠落や不明、パラメーターの長さの無効など、コントラクト違反が原因で発生します。
レスポンスボディには、理由を明確に示す必要があります。
1{
2 "title": "Unauthorized",
3 "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/unauthorized",
4 "detail": "Invalid token provided."
5}このタイプのエラーは、認証トークンの欠落や無効など、認証の失敗が原因で発生します。
次の項目を確認します。
Authorization ヘッダーに認証トークンがありますか?1{
2 "title": "Forbidden",
3 "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/forbidden",
4 "detail": "Request path is not allowed, because of missing or invalid permissions."
5}このタイプのエラーは、認可の失敗 (通常はスコープエラー) が原因で発生します。
次の項目を確認します。
1{
2 "title": "Method Not Allowed",
3 "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/method-not-allowed",
4 "detail": "The request method is not allowed for the requested resource"
5}このタイプのエラーは、エンドポイントパスが存在するが、リクエストメソッドがコントラクトで定義されていない場合に返されます。
このメソッドが有効な場合は、対応する操作をコントラクトに追加します。そうでない場合は、別の方法を使用するようにリクエストを変更します。
1{
2 "title": "Unsupported Media Type",
3 "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/unsupported-media-type",
4 "detail": "The media type 'application/xml' in the Accept header isn't supported.",
5 "mediaType": "application/xml"
6}この種類のエラーは、コントラクトで定義されているレスポンスメディアの種類がクライアントによって受け入れられない場合に返されます (たとえば、エンドポイントは常に application/json を返しますが、クライアントは Accept ヘッダーで定義されている application/xml のみを受け入れる場合)。
リクエストされたメディアの種類が有効な場合は、コントラクト内の対応する操作に追加します。そうでない場合は、ワイルドカードなどを使用して、サポートされているメディアの種類を使用するようにリクエストを変更します。詳細については、仕様を参照してください。
1{
2 "title": "Unsupported Content Type",
3 "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/unsupported-content-type",
4 "detail": "The media type 'application/xml' in the Content-Type header isn't supported. Note: Only the UTF-8 charset is supported.",
5 "contentType": "application/xml"
6}このタイプのエラーは、リクエストペイロードのメディアの種類がコントラクトで定義されているメディアの種類と一致しない場合に返されます(たとえば、ペイロードは Content-Type ヘッダーで示されているとおり application/xml だが、エンドポイントは application/json を期待する場合)。
指定されたメディアの種類が有効な場合は、コントラクト内の対応する操作に追加します。そうでない場合は、サポートされているメディアの種類を使用するようにリクエストを変更します。詳細については、仕様を参照してください。
1{
2 "title": "Custom API Internal Server Error",
3 "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/custom-api-internal-server-error"
4}このタイプのエラーは、リクエスト処理中の一般的なサーバーエラーを示している可能性があります。ただし、実装スクリプトから発生したエラーは、上記の例のように custom-api-internal-server-error タイプでエラーも返します。
ここで説明するように、ログメッセージを調べて、これらのエラーの理由を見つけてください。
1{
2 "title": "Custom API Circuit Breaker Error",
3 "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/custom-api-circuit-breaker-error"
4}このタイプのエラーは、多数のスクリプトエラーが原因でサーキットブレーカーがオープンになっていることを示します。
この保護メカニズムの詳細と、これらのエラーに対処する方法については、サーキットブレーカーを参照してください。
SCAPI エラーレスポンス:
コントローラーのエラーレスポンス:
エラーレスポンスコードは、結果の JSON に直接埋め込まれます。エラーレスポンスが有効な JSON でない場合、最終的なレスポンスは無効な JSON になります。