Null value in response #1

Open
opened 2024-06-10 10:08:33 +02:00 by Daniel_Hassert · 1 comment
Member

Das folgende ist nur nice to have und tut auch nicht weh wenns so bleibt wie gehabt

Beispiel: OnlineServiceDomains

Erwartetes Model laut ApiDoku

export interface OnlineServiceDomain {
    Guid: string;
    CompanyName: string;
    Domain: string;
    GuidDbBlobHeaderLogo: string | null;
    GuidDbBlobFooterLogo: string | null;
    FormBackgroundColor: string | null;
    BodyBackgroundColor: string | null;
    PrimaryColor: string | null;
    SecondaryColor: string | null;
    _HashValue: string;
}

Model generiert von Swagger:

// ? steht für undefined, kann auch bedeuten, dass das Feld nicht existiert
export interface OnlineServiceDomain { 
    guid: string;
    companyName?: string;
    domain: string;
    guidDbBlobHeaderLogo?: string;
    guidDbBlobFooterLogo?: string;
    bodyBackgroundColor?: string;
    formBackgroundColor?: string;
    primaryColor?: string;
    secondaryColor?: string;
    hashValue?: HashValue;
}

Model in Response

[
    {
        "Guid": "bb6f9295-bdf1-c7aa-c414-3e1f740cb922",
        "Domain": "onlineservices.dev.rz2.prm-ag.de",
        "GuidDbBlobHeaderLogo": null,
        "GuidDbBlobFooterLogo": null,
        "PrimaryColor": "rgba(255,0,66,1)",
        "SecondaryColor": "rgba(255,0,66,1)",
        "BodyBackgroundColor": "rgba(245,245,248,1)",
        "FormBackgroundColor": "rgba(245,245,248,1)",
        "CompanyName": "DEV Webentwicklung musterreifen.com",
        "_HashValue": "4309feb3beb685c8f8e37b9297832f19f454171d"
    }
]

Anregung

Damit Consumer nicht in die Falle gehen wenn sie swagger verwenden:

'How to define a property that can be string or null in OpenAPI (Swagger)?'

Swagger ignoriert außerdem, dass die Felder in unseren Models als Upper Camel Case geliefert werden :/

Das folgende ist nur nice to have und tut auch nicht weh wenns so bleibt wie gehabt ## Beispiel: OnlineServiceDomains ### Erwartetes Model laut ApiDoku ```typescript export interface OnlineServiceDomain { Guid: string; CompanyName: string; Domain: string; GuidDbBlobHeaderLogo: string | null; GuidDbBlobFooterLogo: string | null; FormBackgroundColor: string | null; BodyBackgroundColor: string | null; PrimaryColor: string | null; SecondaryColor: string | null; _HashValue: string; } ``` ### Model generiert von Swagger: ```typescript // ? steht für undefined, kann auch bedeuten, dass das Feld nicht existiert export interface OnlineServiceDomain { guid: string; companyName?: string; domain: string; guidDbBlobHeaderLogo?: string; guidDbBlobFooterLogo?: string; bodyBackgroundColor?: string; formBackgroundColor?: string; primaryColor?: string; secondaryColor?: string; hashValue?: HashValue; } ``` ### Model in Response ```json [ { "Guid": "bb6f9295-bdf1-c7aa-c414-3e1f740cb922", "Domain": "onlineservices.dev.rz2.prm-ag.de", "GuidDbBlobHeaderLogo": null, "GuidDbBlobFooterLogo": null, "PrimaryColor": "rgba(255,0,66,1)", "SecondaryColor": "rgba(255,0,66,1)", "BodyBackgroundColor": "rgba(245,245,248,1)", "FormBackgroundColor": "rgba(245,245,248,1)", "CompanyName": "DEV Webentwicklung musterreifen.com", "_HashValue": "4309feb3beb685c8f8e37b9297832f19f454171d" } ] ``` ### Anregung Damit Consumer nicht in die Falle gehen wenn sie swagger verwenden: ['How to define a property that can be string or null in OpenAPI (Swagger)?'](https://stackoverflow.com/questions/48111459/how-to-define-a-property-that-can-be-string-or-null-in-openapi-swagger) Swagger ignoriert außerdem, dass die Felder in unseren Models als Upper Camel Case geliefert werden :/
Member

Das Casing bei deren generierten Code müsste man als Bug an Swagger melden. Können wir ja nicht beeinflussen.

Aktuell verwenden wir noch Version 3.0 der OpenAPI. Dort hatte ich (woanders mal gelesen) nur "required" verwendet. Ich werde es für die neue Doku dann mit verwenden, weil ich das mit der Syntax type: ['null', string] schon nice finde. Ich lasse den Issue so lange offen.

Das Casing bei deren generierten Code müsste man als Bug an Swagger melden. Können wir ja nicht beeinflussen. Aktuell verwenden wir noch Version 3.0 der OpenAPI. Dort hatte ich (woanders mal gelesen) nur "required" verwendet. Ich werde es für die neue Doku dann mit verwenden, weil ich das mit der Syntax `type: ['null', string]` schon nice finde. Ich lasse den Issue so lange offen.
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: PRM_Software_AG/api-documentation#1
No description provided.