我的代码工作正常,但我需要
nestjs-asyncapi
和 swagger
中的文档帮助。在我的代码中,我在数组中有一个对象,但在文档中我只有一个对象。
这是我的 Nest js 装饰器:
@AsyncApiSub({
channel: 'myChannel',
description: 'Read all features - result',
message: {
name: 'getFeaturesResponse',
payload: {
type: () => Feature,
},
headers: AsyncApiHeaders.subHeaders(),
},
})
现在我在 Async API studio 中创建了我的异步 API 的这一部分,一切看起来都很好,就像我想要的那样。但是,我不知道应该如何更新装饰器才能拥有
array<Object>
。
"Feature": {
"type": "array",
"items": {
"type": "object",
"properties": {
"idFeature": {
"type": "string",
"description": "unique id of Feature",
"example": "example"
},
},
},
"required": [
"idFeature",
"name",
"description"
]
},
这就是我想要的:
我应该提供更多信息吗?我应该以某种方式重写整个装饰器还是只重写某些部分?
我发现现在
nestjs-asyncapi
不知道该怎么做。因此,一种方法是更新执行此操作的脚本。
或者我选择其他选项。我将另一个 dto 作为数组添加到我的 dto 类中。两者都在同一个文件中。
export class Feature {
@ApiProperty({
type: 'string',
description: 'unique id of Feature',
example: 'a5f3252b-1007-449d-a75d-e99ecf88bc06',
})
@IsNotEmpty()
@IsString()
idFeature: string;
constructor(
idFeature: string,
) {
this.idFeature = idFeature;
}
}
export class FeatureArray {
@ApiPropertyOptional({
type: Feature,
isArray: true,
description: 'settings of Feature',
})
@ValidateNested({ each: true })
@Type(() => Feature)
@IsArray()
featureArray: Feature[];
constructor(
feature: Feature[],
) {
this.featureArray = feature;
}
}
这是我代码中的装饰器:
@AsyncApiSub({
channel: 'myChannel',
description: '',
message: {
name: 'Name',
payload: {
type: () => FeatureArray,
},
headers: AsyncApiHeaders.subHeaders(),
},
})
这是图像结果: