typescript - Swagger/OpenAPI-klientkodgenerator ändrar egenskapsnamn


Jag utvecklar en liten webbapplikation med .NET Core-backend och React (TS-stöd) frontend.

För API-definition/dokumentation använder jag OpenAPI och har problem med kodgenerering för klienten. Nedan är ett utdrag av yaml-definitionerna (från swagger.json) som jag använder för att generera klientgränssnitt med Swagger Editor

crmObiskiPartnerjevResponse:
      type: object
      properties:
        id:
          type: integer
          format: int32
        PoslovniPartner:
          type: integer
          format: int32
          nullable: true
        DatumObiska:
          type: string
          format: date-time
          nullable: true
        NamenObiskaId:
          type: integer
          format: int32
          nullable: true
        Uporabnik:
          type: integer
          format: int32
          nullable: true
        Opomba:
          type: string
          nullable: true
        NamenObiskaNaziv:
          type: string
          nullable: true
        UporabnikNaziv:
          type: string
          nullable: true
        PoslovniPartnerNaziv:
          type: string
          nullable: true
      nullable: true

Problemet är att när man genererar klientkod för TypeScript så förstör Swagger-editor namngivningen av egenskaper. I detta exempel konverterar den första bokstaven till liten bokstav (PoslovniPartner -> poslovniPartner). Alla idéer om hur man kan lösa detta skulle uppskattas mycket.

/**
 * ECE_crmWebAPI
 * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
 *
 * OpenAPI spec version: v1
 * 
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */

export interface CrmObiskiPartnerjevResponse { 
    id?: number;
    poslovniPartner?: number;
    datumObiska?: Date;
    namenObiskaId?: number;
    uporabnik?: number;
    opomba?: string;
    namenObiskaNaziv?: string;
    uporabnikNaziv?: string;
    poslovniPartnerNaziv?: string;
}

Svar #1

Vänligen ta en titt på Codegen FAQ: Codegen - FAQ

JSON-svaret kunde inte deserialiseras korrekt till objektet på grund av ändring i variabelnamn (snake_case till camelCase). Finns det något sätt att behålla det ursprungliga namnet?

Ja, använd följande alternativ när du genererar TypeScript-klienter:

modelPropertyNaming
    Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name (Default: camelCase)

Så, vänligen ställ in modelPropertyNaming på original

Relaterade artiklar