LoginSignup
8
6

More than 5 years have passed since last update.

Google Cloud Endpointsのエラーレスポンスをまとめてみた

Posted at

はじめに

Google Cloud Endpointsを使うと、サーバーのうちOpenAPI形式で書いた通りのAPIのみを公開することができます。

Cloud Endpointsの層で不正なリクエストと判定された場合には、指定のフォーマットでレスポンスが返ってくるようで、種類がいくつかあったので自分が遭遇したエラーをまとめました。

見た目を変えたい場合は、以下のレスポンスを参考にフロントの制御を行うとよいかと思います。

※ なお、裏側のサーバーはGoogle App Engineで作っているため、別のサービスで作った場合はまた別のレスポンス形式になるかもしれません。

エンドポイント未定義の場合

ドキュメントに書かれていないエンドポイントを叩いた場合に発生します。

{
    "code": 5,
    "message": "Method does not exist.",
    "details": [
        {
            "@type": "type.googleapis.com/google.rpc.DebugInfo",
            "stackEntries": [],
            "detail": "service_control"
        }
    ]
}

APIキーがない場合

Cloud Endpointsでは認証方式としてAPIキーを設定でき、APIキーが含まれていないリクエストが来ると以下のレスポンスを返すようです。

{
    "code": 16,
    "message": "Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API.",
    "details": [
        {
            "@type": "type.googleapis.com/google.rpc.DebugInfo",
            "stackEntries": [],
            "detail": "service_control"
        }
    ]
}

APIキーが間違っている場合

こちらは認証失敗時のエラーです。

{
    "code": 3,
    "message": "API key not valid. Please pass a valid API key.",
    "details": [
        {
            "@type": "type.googleapis.com/google.rpc.DebugInfo",
            "stackEntries": [],
            "detail": "service_control"
        }
    ]
}

APIキーの権限がない場合

Cloud Endpointsのサービスに対してAPIのキーの権限がない場合に出るようです。

{
    "code": 13,
    "message": "Request blocked due to unsupported error code: 122",
    "details": [
        {
            "@type": "type.googleapis.com/google.rpc.DebugInfo",
            "stackEntries": [],
            "detail": "service_control"
        }
    ]
}

GCPの「APIとサービス」の機能でAPIキーを発行した際、APIキーの制限を設定する箇所でCloud Endpointsが接続するバックエンド(今回はApp Engine)に対して権限がないと発生するようです。

この場合はAPIの制限に対して、バックエンドとなるサービスを追加することで解決できるようになるようです。

スクリーンショット 2019-03-11 15.18.35.png

まとめ

ということでCloud Endpointsのエラーレスポンスのまとめでした。

いろいろあってCloud Endpointをサービスで使わないことにはなったのですが、今後も検証していく予定ではあるので新たなエラーを見つけたら更新したいと思います。

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6