Разбор обратных вызовов OpenAPI в Loopback 4 - PullRequest
0 голосов
/ 08 февраля 2020

В контроллере Loopback 4 я описал операцию, а также включил CallbackObject. Я надеялся, что сгенерированный openapi. json будет содержать правильный перевод, но схема, объявленная в requestBody, ответы ... всегда пустые.

Так что мне интересно, с каким пакетом он связан ? (openapi-spe c -builder, openapi-v3, остальные?)

Я сделал pullrequest при синтаксическом анализе OpenAPI CallbacksObject в openapi-to-graphql и подумал, что logi c может быть повторно использовано в связанном пакете Loopback.

Вот операция в контроллере:

`@post(`/${devicesApiEndPoint}`, {
    operationId: 'createDevice',
    security,
    requestBody: {
      description: 'Device instance to create',
      required: true,
      content: {
        'application/json': {
          schema: {
            'x-ts-type': Device,
          },
        },
      },
    },
    responses: {
      '200': {
        description: 'Device instance',
        content: {'application/json': {schema: {'x-ts-type': Device}}},
      },
      default: defaultResponse,
    },
    callbacks: {
      deviceCallbacks,
    },
  })
`

Здесь обратные вызовы устройства:

` export const deviceCallbacks = {
  '{$request.body#/ownerId}/Devices/{$method}/+': {
    post: {
      operationId: 'devicesEventListener',
      description: 'Listen all devices events owned by ownerId',
      requestBody: {
        required: true,
        content: {'application/json': {schema: {'x-ts-type': DeviceTopic}}},
      },
      responses: {
        '200': {
          description: 'Device instance',
          content: {'application/json': {schema: {'x-ts-type': Device}}},
        },
      },
    },
  },
};

`

И выдержка из openapi. json:

`        "callbacks": {
          "deviceCallbacks": {
            "{$request.body#/ownerId}/Devices/{$method}/+": {
              "post": {
                "operationId": "devicesEventListener",
                "description": "Listen all devices events owned by ownerId",
                "requestBody": {
                  "required": true,
                  "content": {
                    "application/json": {
                      "schema": {}
                    }
                  }
                },
                "responses": {
                  "200": {
                    "description": "Device instance",
                    "content": {
                      "application/json": {
                        "schema": {}
                      }
                    }
                  }
                }
              }
            }
          }
        }

`

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