Creating an API gateway
Before you start, prepare an API specification file based on the OpenAPI 3.0
Below is an example of the hello-world.yaml
specification
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"
-
In the management console
, go to the folder where you want to create an API gateway. -
In the list of services, select API Gateway.
-
Click Create API gateway.
-
Enter a name for the API gateway in the Name field.
-
(Optional) In the Description field, enter a description for the API gateway.
-
Under Specification, add the text of the OpenAPI specifications
.To add the x-yc-apigateway-integration extension to a specification, you can use the specification constructor.
-
Configure additional API gateway settings if needed.
-
Click Create.
If you do not have the Yandex Cloud command line interface yet, install and initialize it.
The folder specified in the CLI profile is used by default. You can specify a different folder using the --folder-name
or --folder-id
parameter.
To create an API gateway:
-
View a description of the CLI command for creating an API gateway:
yc serverless api-gateway create --help
-
Specify gateway parameters in the create command (not all the supported parameters are listed):
yc serverless api-gateway create \ --name <gateway_name> \ --spec=<specification_file_path>
Terraform
For more information about the provider resources, see the documentation on the Terraform
If you change the configuration files, Terraform automatically detects which part of your configuration is already deployed, and what should be added or removed.
If you don't have Terraform, install it and configure the Yandex Cloud provider.
To create an API gateway:
-
Describe the parameters of the
yandex_api_gateway
resource in the configuration file:-
name
: API gateway name. The name format is as follows:- The name must be from 3 to 63 characters long.
- It may contain lowercase Latin letters, numbers, and hyphens.
- The first character must be a letter and the last character cannot be a hyphen.
-
description
: API gateway description. -
labels
: Labels for the API gateway. Specify a key-value pair. -
spec
: API gateway specification.
Here is an example of the configuration file structure:
resource "yandex_api_gateway" "test-api-gateway" { name = "<API_gateway_name>" description = "<API_gateway_description>" 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 }
For more information about resource parameters in Terraform, see the provider documentation
. -
-
Make sure the configuration files are correct.
-
In the command line, go to the directory where you created the configuration file.
-
Run a check using this command:
terraform plan
If the configuration is described correctly, the terminal will display a list of created resources and their parameters. If the configuration contains any errors, Terraform will point them out.
-
-
Deploy cloud resources.
-
If the configuration does not contain any errors, run this command:
terraform apply
-
Confirm creating the resources: type
yes
in the terminal and press Enter.All the resources you need will then be created in the specified folder. You can check the new resources and their configuration using the management console
or these CLI commands:yc serverless api-gateway get <API_gateway_name>
-
To create an API gateway, use the create REST API method for the ApiGateway resource or the ApiGatewayService/Create gRPC API call.
You can create an API gateway using the Yandex Cloud Toolkit plugin