IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Mini
Člen
Avatar
Mini:14.11.2021 21:23

Ahoj,
mám .net Core Rest api, kde generuji swagger.
Funguje to dobře ale pro odchytávání všech errorů v appce použivam middleware pro odchytávání vsech exception.
V tomto middlewaru mam vlastní error object s typem (enum) a hláškou (info), klienti (mobil, web) v responsu pak jen koukaji na tento enum a vedí hned co se děje.
Takže kdekoliv v appce ja throwuju vsechny možny chyby.
A ted jakej je problém.
Aby mi swagger vygeneroval tento error response ve vsech controllerech tak jsem pridal filter takto:

services.AddMvc(options =>
            {
                options.EnableEndpointRouting = false;
                options.Filters.Add(new Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute(typeof(ErrorResponse), (int)HttpStatusCode.BadRequest));
                options.Filters.Add(new Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute(typeof(ErrorResponse), (int)HttpStatusCode.Unauthorized));
                options.Filters.Add(new Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute(typeof(ErrorResponse), (int)HttpStatusCode.NotFound));
                options.Filters.Add(new Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute(typeof(ErrorResponse), (int)HttpStatusCode.InternalServerError));
            })

Což funguje a opravdu ve swaggeru ma každej endopint tyto možné chyby. Ale 200 tam není.
Takže když mám metodu

public async Task<ActionResult<HorseEntity>> GetHorseById(int id)

Tak response 200 ve swaggeru prsote chybí a tím pádem nevím co ta entita obsahuje. Ale když filtry nepřidam tak ten typ tam je ale zase tam nejsou errory.

Zkusil jsem: Googlil jsem a nedopatral jsem se ničeho co by mi dávalo smysl.

Chci docílit: Potřebuji jak errory tak success response Typy.
Nemáte někdo prosím s tímto zkušenost?
Diky moc :-)

Editováno 14.11.2021 21:25
Odpovědět
14.11.2021 21:23
Jste dobří jen v tom, co vás baví.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.