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
