【问题标题】:OpenAPI config for a Graphql backend using GCP API Gateway?使用 GCP API 网关的 Graphql 后端的 OpenAPI 配置?
【发布时间】:2021-06-26 21:15:52
【问题描述】:

我有一个位于 GCP API 网关后面的 apollo/graphql 服务器。谷歌表示它需要一个 OpenAPI 规范来保护端点: https://cloud.google.com/api-gateway/docs/get-started-cloud-run#creating_an_api_config

但是,这对于保护单个 graphql 端点究竟如何呢?另外,作为一个附带问题,是否需要为每个 Cloud Run/App Engine 服务创建一个新的 API 网关?

提前致谢。

【问题讨论】:

    标签: api google-cloud-platform graphql openapi api-gateway


    【解决方案1】:

    Here's a repo 展示了您想要实现的目标。它是一个 GCP API 网关,面向 Cloud Run 上的 GraphQL API,由 Identity-Aware Proxy 保护。以下是链接中的 API 配置:

    api-spec.yaml

    swagger: '2.0'
    info:
      title: gcp-demo-api
      description: Sample GraphQL API on API Gateway with a Cloud Run backend
      version: 1.0.0
    schemes:
      - https
    produces:
      - application/json
    paths:
      /:
        post:
          summary: GraphQL endpoint
          operationId: gql
          x-google-backend:
            address: https://PROJECT_AND_RANDOM_STRING.a.run.app/graphql  # App URL/endpoint
            jwt_audience: LONG_RANDOM_STRING.apps.googleusercontent.com # IAP client ID
          responses:
            '200':
              description: A successful response
              schema:
                type: object
    

    要回答您的附带问题,了解 API 网关的作用很重要。 API 网关位于您的用户请求和您的后端服务集合之间,因此所有 API 请求都通过它。

    因此,您无需为每个服务创建新的 API 网关。通过在每个端点上指定后端地址,API Gateway 可以提供多种服务,例如 Cloud Run、App Engine、Cloud Functions 等。这是一个link,进一步解释了这个概念。

    【讨论】:

      猜你喜欢
      • 2022-06-17
      • 2021-10-28
      • 2021-09-17
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 2020-02-06
      • 2020-06-16
      • 2021-07-08
      相关资源
      最近更新 更多