Создание API-шлюза
Перед началом работы подготовьте файл спецификации API по стандарту OpenAPI 3.0
Пример файла спецификации 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"
-
В консоли управления
перейдите в каталог, в котором необходимо создать API-шлюз. -
В списке сервисов выберите API Gateway.
-
Нажмите кнопку Создать API-шлюз.
-
В поле Имя введите название API-шлюза.
-
(Опционально) В поле Описание введите описание API-шлюза.
-
В блок Спецификация добавьте текст спецификаций OpenAPI
.Чтобы добавить расширение x-yc-apigateway-integration в спецификацию, вы можете воспользоваться конструктором спецификаций.
-
При необходимости задайте дополнительные настройки API-шлюза.
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать API-шлюз:
-
Посмотрите описание команды CLI для создания API-шлюза:
yc serverless api-gateway create --help
-
Укажите параметры шлюза в команде создания (в примере приведены не все доступные параметры):
yc serverless api-gateway create \ --name <имя_шлюза> \ --spec=<путь_к_файлу_спецификации>
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы создать API-шлюз:
-
Опишите в конфигурационном файле параметры ресурса
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 см. в документации провайдера
. -
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
или с помощью команд CLI:yc serverless api-gateway get <имя_API-шлюза>
-
Чтобы создать API-шлюз, воспользуйтесь методом REST API create для ресурса ApiGateway или вызовом gRPC API ApiGatewayService/Create.
Создать API-шлюз можно с помощью плагина Yandex Cloud Toolkit