В контроллере 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": {}
}
}
}
}
}
}
}
}
`