症状
デベロッパー ポータルから SmartDocs を使用してライブ API リクエストを行ったときにエラーが発生します。
エラー メッセージ
デベロッパー ポータルでよくあるエラーは [An internal error has occurred.Please retry your request.] です。
考えられる原因
このエラーは、デベロッパー ポータルがバックエンド(smartdocs プロキシまたは実際のエンドポイント)からレスポンスを取得できなかったときに発生します。
診断
ブラウザでデベロッパー ツールを有効にし、[Network] タブを確認して実際のエラーを特定します。
よくあるエラーとその典型的な原因を次の表に示します。
エラー |
典型的な原因 |
ERR_NAME_NOT_RESOLVED |
|
Mixed Content |
|
500 - Internal Server Error |
これらのそれぞれの原因を示し、問題を解決する手順について説明します。
SmartDocs プロキシの構成が誤っているか、ネットワーク ファイアウォールで制限されている
[ERR_NAME_NOT_RESOLVED] メッセージは、smartdocs プロキシの構成が誤っているか、ポータルへのアクセス元のネットワークでファイアウォールでの制限のために smartdocs プロキシの URL を呼び出しできないことを表しています。smartdocs プロキシは、インターネットまたは社内ネットワーク(内部 API の場合)からアクセスできる必要があります。
解決策
インターネットからアクセスできるホスト名を使用して Edge 上の仮想ホストに smartdocs プロキシをデプロイすることで、必要なすべてのネットワークから smartdocs プロキシにアクセスできるようにします。
ポータルは HTTPS で構成されているが SmartDocs は HTTP でリクエストしている
[Mixed Content] エラーは、HTTPS を介して読み込まれたページから、HTTP を介して smartdocs プロキシが呼び出されていることを表しています。
解決策
この問題を解決するには、HTTPS を介して smartdocs プロキシを公開します。そうするには、TLS/SSL を使用するように構成されている仮想ホスト(通常は「セキュアな」仮想ホスト)が含まれるように smartdocs プロキシをデプロイします。
SmartDocs プロキシがエラーを返している
[500 - Internal Server Error] メッセージは、smartdocs プロキシでの問題が原因で発生することがあります。その場合は、smartdocs プロキシがそのエラーを返していることがわかります。
診断
Trace ツールを使用して、次に説明しているように smartdocs ポリシーでのエラーを診断します。詳しくは Trace ツールの使用をご覧ください。
- 「VALIDATE」組織で「smartdocs」プロキシに対してトレースを有効にして、500 Internal Server Error を返しているポリシーを特定します。
- トレースで該当ポリシーを選択して、エラーの原因を特定します。
解決策
特定したエラーを修正します。不明な点がある場合は Apigee サポートにお問い合わせください。
Edge Message Processor が、公開された API エンドポイントを呼び出すことができない
500 - Internal Server Error は、Smartdocs プロキシをホストしている組織に属する Message Processor が API エンドポイントを呼び出すことができない場合にも発生します。
診断
Trace ツールを使用して、次に説明しているように smartdocs ポリシーでのエラーを診断します。詳しくは Trace ツールの使用をご覧ください。
- 「VALIDATE」組織で「smartdocs」プロキシに対してトレースを有効にして、500 Internal Server Error を返しているポリシーを特定します。
- 上記のサンプル UI トレースでは、JavaScript ポリシー [BuildTargetAPIRequest] がターゲット URL の実行に失敗していることがわかります。
- JavaScript ポリシー [BuildTargetAPIRequest] から URL を取得します。
- 次のように、「VALIDATE」組織に関連付けられている Message Processor ノードから、その URL を直接呼び出します。
curl -v <target URL>
- 見つかったすべてのエラーを修正します。
解決策
- デベロッパー ポータルで公開されている API を、「VALIDATE」組織に関連付けられている Message Processor から呼び出すことができることを確認して、発生しているすべてのエラーを修正します。
- Message Processor から API 呼び出しを直接実行できる場合は、SmartDocs からその API を実行できる可能性が非常に高くなります。
- SmartDocs 経由でその API 呼び出しを実行し、問題が修正されたかどうかを確認します。