Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex API Gateway
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Создание API-шлюза
    • Изменение API-шлюза и его спецификации
    • Подключение домена
    • Удаление API-шлюза
    • Мониторинг
    • Просмотр журнала выполнения
  • Практические руководства
    • Все практические руководства
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка навыка Алисы и сайта с авторизацией
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Разработка пользовательской интеграции
    • Разработка CRUD API для сервиса фильмов
    • Работа с API-шлюзом по протоколу WebSocket
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Расширения спецификации
      • Обзор
      • Статический ответ
      • Вызов функции
      • Интеграция с Serverless Containers
      • Обращение по HTTP
      • Интеграция с Object Storage
      • Интеграция с DataSphere
      • Интеграция с Data Streams
      • Интеграция с Message Queue
      • Интеграция с YDB
      • Жадные параметры
      • Обобщенный HTTP-метод
      • Авторизация с помощью функции
      • Поддержка протокола WebSocket
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • ApiGatewayService
      • OperationService
    • REST (англ.)
      • Overview
      • ApiGateway
        • Overview
        • addDomain
        • create
        • delete
        • get
        • getOpenapiSpec
        • list
        • listAccessBindings
        • listOperations
        • removeDomain
        • setAccessBindings
        • update
        • updateAccessBindings
  • Справочник API Websocket
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • ConnectionService
    • REST (англ.)
      • Overview
      • Connection
        • Overview
        • disconnect
        • get
        • send
  • Вопросы и ответы
  1. Пошаговые инструкции
  2. Создание API-шлюза

Создание API-шлюза

Статья создана
Yandex Cloud
,
улучшена
Anton P.
    Консоль управления
    CLI
    API
    Terraform
    Yandex Cloud Toolkit
    1. В консоли управления выберите каталог, в котором необходимо создать API-шлюз.

    2. В списке сервисов выберите API Gateway.

    3. Нажмите кнопку Создать API-шлюз.

    4. В поле Имя введите numbers.

    5. (опционально) В поле Описание введите описание.

    6. В блок Спецификация добавьте спецификацию:

      openapi: "3.0.0"
      info:
        version: 1.0.0
        title: Test API
      paths:
        /hello:
          get:
            summary: Say hello
            operationId: hello
            parameters:
              - name: user
                in: query
                description: User name to appear in greetings
                required: false
                schema:
                  type: string
                  default: 'world'
            responses:
              '200':
                description: Greeting
                content:
                  'text/plain':
                     schema:
                       type: "string"
            x-yc-apigateway-integration:
              type: dummy
              http_code: 200
              http_headers:
                'Content-Type': "text/plain"
              content:
                'text/plain': "Hello, {user}!\n"
      
    7. Нажмите кнопку Создать.

    Чтобы создать API-шлюз:

    1. Сохраните следующую спецификацию в файл hello-world.yaml:

      openapi: "3.0.0"
      info:
        version: 1.0.0
        title: Test API
      paths:
        /hello:
          get:
            summary: Say hello
            operationId: hello
            parameters:
              - name: user
                in: query
                description: User name to appear in greetings
                required: false
                schema:
                  type: string
                  default: 'world'
            responses:
              '200':
                description: Greeting
                content:
                  'text/plain':
                     schema:
                       type: "string"
            x-yc-apigateway-integration:
              type: dummy
              http_code: 200
              http_headers:
                'Content-Type': "text/plain"
              content:
                'text/plain': "Hello, {user}!\n"
      
    2. Выполните команду:

      yc serverless api-gateway create --name hello-world --spec=hello-world.yaml --description "hello world"
      

      Где:

      • name — имя API-шлюза.
      • spec — файл со спецификацией.
      • description — описание API-шлюза.

      Результат:

      done (29s)
      id: d5dug9gkmu187iojcrtr
      folder_id: b1g55tflru0ek7omtfu0
      created_at: "2020-06-17T09:20:22.929Z"
      name: hello-world
      description: hello world
      status: ACTIVE
      domain: d5dug9gkmu187iojcpvp.apigw.yandexcloud.net
      log_group_id: ckghq1hm19q7ek5sjnh5
      

    Создать API-шлюз можно с помощью метода API create.

    Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). Terraform и его провайдеры распространяются под лицензией Mozilla Public License.

    Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

    При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

    Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.

    Чтобы создать API-шлюз:

    1. Опишите в конфигурационном файле параметры ресурса yandex_api_gateway:

      • name — имя API-шлюза. Формат имени:

        • Длина — от 3 до 63 символов.
        • Может содержать строчные буквы латинского алфавита, цифры и дефисы.
        • Первый символ — буква. Последний символ — не дефис.
      • description — описание API-шлюза.

      • labels — метки для API-шлюза. Укажите пару ключ-значение.

      • spec — спецификация API-шлюза.

      Пример структуры конфигурационного файла:

      resource "yandex_api_gateway" "test-api-gateway" {
        name        = "<имя API-шлюза>"
        description = "<описание API-шлюза>"
        labels      = {
          label       = "label"
          empty-label = ""
        }
        spec = <<-EOT
          openapi: "3.0.0"
          info:
            version: 1.0.0
            title: Test API
          paths:
            /hello:
              get:
                summary: Say hello
                operationId: hello
                parameters:
                  - name: user
                    in: query
                    description: User name to appear in greetings
                    required: false
                    schema:
                      type: string
                      default: 'world'
                responses:
                  '200':
                    description: Greeting
                    content:
                      'text/plain':
                        schema:
                          type: "string"
                x-yc-apigateway-integration:
                  type: dummy
                  http_code: 200
                  http_headers:
                    'Content-Type': "text/plain"
                  content:
                    'text/plain': "Hello, {user}!\n"
        EOT
      }
      

      Более подробную информацию о параметрах ресурсов в Terraform см. в документации провайдера.

    2. Проверьте корректность конфигурационных файлов.

      1. В командной строке перейдите в папку, где вы создали конфигурационный файл.

      2. Выполните проверку с помощью команды:

        terraform plan
        

      Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.

    3. Разверните облачные ресурсы.

      1. Если в конфигурации нет ошибок, выполните команду:

        terraform apply
        
      2. Подтвердите создание ресурсов: введите в терминал слово yes и нажмите Enter.

        После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления или с помощью команд CLI:

        yc serverless api-gateway get <имя API-шлюза>
        

    Создать API-шлюз можно с помощью плагина Yandex Cloud Toolkit для семейства IDE на платформе IntelliJ от JetBrains.

    Была ли статья полезна?

    Language / Region
    Проект Яндекса
    © 2023 ООО «Яндекс.Облако»