Hi Josh,
Thanks for the tip! I hadn't checked the docs on x-google-backend in-depth because I'm still a little bit hazy as to what is part of Endpoints and what is API Gateway. Sometimes it seems the functionality is similar (especially when it comes to OpenAPI specs) but then at other times they do different things (like how Endpoints serves up a X-Endpoint-API-UserInfo header when you've authenticated via Firebase, but the API Gateway does not).
Anyway, moving x-google-backend to the top level did the trick. I knew that was possible, but was hesitant to do so at first because the whole point of the API Gateway is that you can declare different backends for different paths. But I guess you can override the top-level one with path-specific ones?
About the missing 's': it's my cloud run service (a Quarkus service in my case) that's reporting this. I had it spit out the
UriInfo object that it receives and it was as follows:
{
encodedMatchedPaths: [0]
matchedUris: null
absolutePath: null
queryParameters: null
encodedPath: "/"
encodedQueryParameters: null
matchingPath: "/"
pathStart: 40
baseURI: null
encodedPathParameters: null
encodedPathSegments: [0]
encodedMatchedUris: null
pathSegments: [0]
ancestors: null
pathParameterPathSegments: null
path: "/"
queryIdx: -1
pathParameters: null
encodedPathParameterPathSegments: null
requestURI: null
contextPath: "/"
}
You can see it's http, and not https, but I honestly don't know if that 's' gets lost somewhere on the Quarkus side of things. All the request logging done by the API Gateway and Cloud Run all report https.
Thanks for your help,
Maarten