gpt4 book ai didi

typescript - 将 Typescript 类 DTO 转换为 Fastify Swagger 的 JSON 模式

转载 作者:行者123 更新时间:2023-12-03 08:14:28 26 4
gpt4 key购买 nike

我正在尝试将我的 DTO 类(Typescript)转换为 JSON 架构:

import { IsNumber, IsString } from 'class-validator';
import { classToPlain } from 'class-transformer';

export class TodoDTO {
@IsNumber()
id?: number;

@IsString()
name?: string;

@IsString()
description?: string;
}

let todo = classToPlain(TodoDTO);

console.log('todo=>', todo);

我尝试使用两个包 class-transformer 和 class-validator 来转换和验证 TodoDTO 类。

在控制台中,输出为 todo=> [Function: TodoDTO]

预期输出:

"TodoDTO": {
"type": "object",
"properties": {
"id": { "type": "number" },
"name": { "type": "string" },
"description": { "type": "string" }
},
"required": [ "id", "name", "description" ]
}

我正在尝试使用 TodoDTO 类作为 fastify-typescript 中的 json-schema。

欢迎任何建议。

最佳答案

我使用了一个名为 class-validator-jsonschema 的库这帮助我根据需要将类转换为 json-schema。

这是代码:

import { IsNumber, IsString } from 'class-validator';

export class TodoDTO {
@IsNumber()
id?: number;

@IsString()
name?: string;

@IsString()
description?: string;
}
import { validationMetadatasToSchemas } from 'class-validator-jsonschema';
import * as todoDtos from './todo.dto';

export { todoDtos };

export const schemas = validationMetadatasToSchemas();

console.log('schemas=>', schemas);

关于typescript - 将 Typescript 类 DTO 转换为 Fastify Swagger 的 JSON 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69872389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com