Конфигурация OpenAPI для бэкэнда Graphql с использованием шлюза GCP API?

У меня есть сервер apollo / graphql, расположенный за шлюзом GCP API. Google утверждает, что для защиты конечных точек требуется спецификация OpenAPI: https://cloud.google.com/api-gateway/docs/get-started-cloud-run#creating_an_api_config

Но как именно это будет выглядеть для защиты одной конечной точки graphql? Кроме того, в качестве побочного вопроса необходимо ли создавать новый API-шлюз для каждой службы Cloud Run / App Engine?

Заранее спасибо.

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как создать простое погодное приложение на Python с API OpenWeatherMap
Как создать простое погодное приложение на Python с API OpenWeatherMap
Этот учебник проведет вас через процесс создания простого погодного приложения с помощью Python и OpenWeatherMap API.
Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
В этом руководстве вы узнаете, как использовать API парсинга квитанций за 5 минут с помощью JavaScript. Eden AI предоставляет простой и удобный для...
0
0
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот репо, который демонстрирует, чего вы хотите достичь. Это GCP API Gateway, выходящий на GraphQL API в Cloud Run, защищенный с помощью 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 и т. д., Указав внутренний адрес на каждой конечной точке. Вот ссылка на сайт, который дополнительно объясняет концепцию.

Другие вопросы по теме