javascript - Angular Typescript: Generador Swagger CodeGen haciendo que todas las propiedades de la clase sean anulables
Estamos generando proxies automáticamente con SwaggerCodeGen https://swagger.io/.
Esto reducirá la escritura manual de cientos de clases. Notamos que todas las propiedades de la clase del modelo son Nullable ? en SwaggerCodeGen.
Cuando escribieron esto, ¿no rompe el contrato de la interfaz cuando algunos miembros son obligatorios? ¿Cuál es la razón por la que SwaggerCodeGen hizo esto? En nuestra misma clase correspondiente en C#, no son anulables.
export interface Product{
productId?: number;
productName?: string;
productType?: number;
manufacturer?: string;
inventory?: number;
Actualmente convirtiendo clases C# a Angular Typescript 10.
Otro tema:
De manera similar en NSwag Studio,
Están haciendo esto con tipos de unión undefined, en lugar de nulos. ¿Es lo mismo que Swagger CodeGen?
export interface Product {
productId: number | undefined;
productName?: string | undefined;
productType?: number | undefined;
manufacturer?: string | undefined;
inventory?: number | undefined;
Respuesta #1
Swagger tiene una propiedad "required" para los parámetros. Si esto no se establece en true, el generador de código hará que los parámetros correspondientes sean anulables.
La solución alternativa es personalizar el generador (por ejemplo, mapeo de tipos) y la plantilla mustache (por ejemplo, eliminar la verificación del parámetro obligatorio si es un tipo primitivo)
definitions:
Order:
required:
- id
- petId
properties:
id:
required: true
type: integer
format: int64
petId:
type: integer
format: int64
quantity:
required: true
type: integer
format: int32
