Параметризация спецификации
Параметризация спецификации позволяет изменять поведение API Gateway, указывая разные значения для отдельных переменных, а не всей спецификации. Для этого используется расширение x-yc-apigateway:variables.
Расширение x-yc-apigateway:variables
Расширение x-yc-apigateway:variables позволяет объявить переменные, которые используются для параметризации спецификации.
VariableObject
VariableObject — набор параметров спецификации OpеnAPI, которые определяют переменную и ее возможные значения.
Параметры
В таблице ниже перечислены параметры объекта VariableObject.
| Параметр | Тип | Параметр обязателен | Описание |
|---|---|---|---|
default |
string, int, double, boolean |
Да | Значение переменной по умолчанию. Используется, если не указан параметр enum. |
enum |
string[], int[], double[], boolean[] |
Нет | Список значений, допустимых для данной переменной. Если не указан, переменная может принимать любое значение. |
description |
string |
Нет | Текстовое описание переменной. |
Использование
После объявления переменной ниже в спецификации можно использовать конструкцию вида ${var.name}, где name — название переменной. При необходимости API Gateway подставит вместо названия переменной значение, заданное при создании или обновлении API-шлюза.
Спецификация расширения
Пример спецификации расширения:
openapi: 3.0.0
info:
title: Sample API
version: 1.0.0
x-yc-apigateway:
variables:
environment:
default: "prod"
enum:
- "prod"
- "testing"
- "dev"
description: "API Gateway installation"
paths:
/env/info:
get:
x-yc-apigateway-integration:
type: dummy
content:
'*': It is ${var.environment} environment!
http_code: 200
http_headers:
Content-Type: text/plain