Angular Typescript: Swagger CodeGen Generator, делающий все свойства класса Nullable - PullRequest
3 голосов
/ 10 июля 2020

Мы автоматически генерируем прокси с SwaggerCodeGen https://swagger.io/.

Это сократит ручной ввод в сотнях классов. Мы заметили, что все свойства класса модели имеют значение Null? в SwaggerCodeGen.

Когда они это писали, разве это не нарушает контракт интерфейса, когда некоторые члены по мере необходимости? По какой причине SwaggerCodeGen сделал это? В нашем же C# соответствующем классе они не допускают значения NULL.

export interface Product{ 
    productId?: number;
    productName?: string;
    productType?: number;
    manufacturer?: string;
    inventory?: number;

В настоящее время классы C# преобразуются в Angular Typescript 10.

введите описание изображения здесь

Другой топи c:

Аналогично в NSwag Studio

Они делают это с undefined типами объединения, а не с нулевым значением . Это то же самое, что Swagger CodeGen,

export interface Product {
    productId: number | undefined;
    productName?: string | undefined;
    productType?: number | undefined;
    manufacturer?: string | undefined;
    inventory?: number | undefined;

1 Ответ

2 голосов
/ 23 июля 2020

Swagger имеет "обязательное" свойство для параметров. Если не установлено значение true, кодогенератор сделает соответствующие параметры обнуляемыми.

Обходной путь - настроить генератор (например, сопоставление типов) и шаблон усов (например, удалить проверку обязательного параметра, если это примитив тип)

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...