API の空の応答のトラブルシューティング

まとめ

この記事では、空の応答を返す API のトラブルシューティングと、Azure API Managementでの復元要求の転送方法について説明します。

これは、Azure API Management トラブルシューティング シリーズ ラボの最初のシナリオです。 API Management トラブルシューティング シリーズのラボ手順に記載されているとおりに、ラボのセットアップ手順に従ってください。

元の製品バージョン: API Management サービス
元の KB 番号: 4464936

症状

空の API は、 GetHeadersGetMyIp の 2 つの操作で構成されます。 GetMyIpX-FORWARDED-FOR ヘッダーの値を返し、 GetHeaders はすべての要求ヘッダー値を返します。 GetMyIp は予想される出力を返しますが、突然 、GetHeaders は 空の応答 (応答本文なし) を返し始めました。

空の応答本文を返す GetHeaders API 操作のスクリーンショット。

GetHeaders API の予想される出力は、次の例のようになります。

{
  "headers": {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
    "Accept-Encoding": "gzip, deflate", 
    "Accept-Language": "en-US,en;q=0.5", 
    "Connection": "close", 
    "Cookie": "_gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1", 
    "Host": "eu.httpbin.org", 
    "Upgrade-Insecure-Requests": "1", 
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
  }
}

Troubleshooting

この問題をトラブルシューティングするには、 API Management インスペクター トレースを収集して、API Management パイプライン内の要求処理を検査することをお勧めします。

forward-request ポリシーが見つからないことに注意してください。 forward-request ポリシーは、要求forward-requestに指定されたバックエンド サービスに要求を転送します。 このポリシーを削除すると、要求がバックエンド サービスに転送されなくなります。 送信セクションのポリシーは、受信セクションのポリシーが正常に完了するとすぐに評価されます。

Blank-APIGetHeaders 操作の <backend> セクションを確認します。 forward-request ポリシーが削除されていることに注意してください。

バックエンド セクションにforward-request ポリシーを追加するか、親レベル (API レベル) からforward-request ポリシーを継承するように<base />要素を追加します。 この変更により、問題が解決されます。

詳細については、 転送要求 ポリシーを参照してください。