コンテンツにスキップ

Invalid Response Spec (無効なレスポンス仕様)

概要

API からのレスポンスが指定された仕様に記述されていませんでした。

通常、この問題の原因は、API の実装と手動でメンテナンスされている仕様とのずれです。 この問題は、意図しない情報が公開されていることを示す場合があり、 セキュリティの問題につながる可能性もあります。

仕様にないフィールドを返す API があるとします。 それらのフィールドに、個人情報 (PII) などの本来 API が返すべきでなかった機密情報が含まれる可能性があります。 そのような場合、情報を安全に保つには、該当情報を返さないよう API を更新する必要があります。

仕様が純粋に参考情報である場合、この種の問題は最新ではないドキュメントと同等です。 クライアント コードの生成、自動テストやその他のツールで API 仕様を使用しているプロジェクトの場合、この種の問題は下流での問題につながる可能性がありますが、 通常は、壊滅的というほどではありません。

参考までに、Mayhem for API 自体は、API をテストするのに完全な仕様を必要としません。主要なテストの副作用として仕様の検証が可能であるため、ユーザーにとって役に立つ可能性を考慮してこれらの警告を生成します。警告を修正しなくとも、Mayhem for API を使い続けることができます。

推奨事項

エンドポイントの指定された「レスポンス」フィールドとコードが実際に生成するフィールドの同期が取れていることを確認します。 * エンドポイントが返す HTTP ステータス コードが指定されていること * エンドポイントが返す Content-Type が指定されていること

サンプル

おそらく、最も単純な例は、あるパスの仕様にパスが返す可能性がある HTTP ステータス コードの 1 つが含まれていないケースでしょう。たとえば、次の簡単な yaml OpenAPI 仕様を例とします。

openapi: "3.0.0"
info:
  title: "status"
  version: "0"
paths:
  /status:
    get:
      responses:
        '204':
          description: everything is fine!

Mayhem for API がこのエンドポイントから 204 以外のレスポンスを観測すると、仕様は無効であるとみなします。

OpenAPI は便利な「デフォルト」レスポンスをサポートしていることに注意してください。

参考資料