Проверка ответа на модель в AWS API Gateway - PullRequest
0 голосов
/ 21 января 2019

Я создал простое определение шлюза API в OpenApi3:

openapi: "3.0.1"
info:
  title: "FooApi"
  version: "2018-12-20T16:48:35Z"
servers:
  - url: "https://<id>.execute-api.us-east-1.amazonaws.com/{basePath}"
    variables:
      basePath:
        default: "/test"
paths:
  /foo:
    get:
      responses:
        200:
          description: "200 response"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Foo"
      x-amazon-apigateway-integration:
        responses:
          default:
            statusCode: "200"
            responseTemplates:
              application/json: "{\"bar\": 123,\"baz\": 456}"
        requestTemplates:
          application/json: "{\"statusCode\": 200}"
        passthroughBehavior: "when_no_match"
        type: "mock"
components:
  schemas:
    Foo:
      required:
        - "bar"
      type: "object"
      properties:
        bar:
          type: "integer"
          format: "int32"
      additionalProperties: false

Я ожидаю, что здесь что-то не получится, потому что возвращаемый объект не соответствует схеме (модели), указанной для него (есть дополнительное свойство, которое явно запрещено схемой). Однако этого не происходит - он возвращает объект с дополнительным свойством.

Я не могу найти способ включить проверку ответа или что-то подобное в API Gateway, поэтому мои вопросы:

  • Есть ли способ сделать это, что я пропустил?
  • Что может быть еще одним подходящим способом для достижения этой цели? Я знаю, что это можно сделать в вызываемом сервисе, но это не позволяет мне проверить, что вызываемый сервис находится в шаговой доступности с API, что я и хочу сделать.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...