Преобразовать REST API, описанный в спецификации OpenAPI, в AWS API Gateway REST API, описанный в шаблоне Terraform - PullRequest
1 голос
/ 13 февраля 2020

У меня есть спецификация OpenAPI 3.0 (YAML) моего REST API, и мне нужно описать тот же API REST в шаблоне Terraform (HCL), что и AWS Ресурсы API-шлюза.

Существуют ли какие-либо инструменты, которые могли бы помогите конвертировать его автоматически?

Ответы [ 2 ]

2 голосов
/ 13 февраля 2020

AWS ' API-шлюз напрямую поддерживает импорт OpenAPI 3.0 spe c для определения всех соответствующих частей API-шлюза.

С Terraform это можно сделать с помощью ресурс aws_api_gateway_rest_api и параметр body .

Пример приведен в тестах для ресурса :

resource "aws_api_gateway_rest_api" "test" {
  name = "foo"
  body = <<EOF
{
  "swagger": "2.0",
  "info": {
    "title": "foo",
    "version": "2017-04-20T04:08:08Z"
  },
  "schemes": [
    "https"
  ],
  "paths": {
    "/test": {
      "get": {
        "responses": {
          "200": {
            "description": "200 response"
          }
        },
        "x-amazon-apigateway-integration": {
          "type": "HTTP",
          "uri": "https://www.google.de",
          "httpMethod": "GET",
          "responses": {
            "default": {
              "statusCode": 200
            }
          }
        }
      }
    }
  }
}
EOF
}

Вы также можете использовать функцию file для прямой загрузки OpenAPI spe c из файла YAML:

resource "aws_api_gateway_rest_api" "test" {
  name = "foo"
  body = file("${path.module}/api.yml")
}
1 голос
/ 13 февраля 2020

Возможно, попробуйте сам ресурс AWS.

В соответствии с документацией для aws_api_gateway_rest_api вы можете передать аргумент body, равный

Спецификация OpenAPI, которая определяет набор маршрутов и интеграций, создаваемых как часть REST API.

Затем, если вам нужно изменить OpenAPI spe c some, вы можете использовать свой любимый язык программирования, который говорит JSON (например, node, java, даже jq, et c ...).

Для получения дополнительной информации и просмотра доступных расширений см. Документы API Gateway .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...