ASP.NET CORE Minimal API - Filters & Validation

ASP.NET CORE Minimal API je ešte stále relatívna novinka, ktorá okolo seba nesie veľkú diskusiu o tom či je to dobrý alebo zlý koncept. Ako pri väčšine si myslím, že pravda je niekde uprostred a je to závislé od toho čo chceme robiť. Minimal API je skvelý spôsob ako vytvoriť svoje prvé API. Žiadne komplikované triedy, nastavovanie. Jeden súbor, pár riadkov a je to.


Toto je sprievodná diskusia k pôvodnej téme na https://blog.vyvojari.dev/asp-net-core-minimal-api-filters-validation/
2 lajkov

Otazocka: naco je dobry package FluentValidation.AspNetCore, nestaci len FluentValidation?

Stačí, máš pravdu. On bol / je potrebný pokiaľ chceš do DI kontajnera registrovať všetky validátory a podobne.

Bežne to tak používam, neuvedomil som si, že v tomto príklade registrujem validátory priamo. Takže áno, v tomto príklade stačí FluentValidation.

1 lajk

S tymto som bojoval, skusam produkcny projekt s Minimal API. Zo zvyku som pouzil validacne atributy. NSwag ich zobral spravne, ale nevalidovali. tak som hladal sposoby ako na to a vsade sa spominalo len FluentValidation. No mam pocit, ze to prosto nie je ono a kvoli trom endpointom som mal vela prace (nehovoriac o tom, ze FluentValidation nema defaultne validaciu maximalnej dlzky byte[]).

Skusali ste aj ine pristupy ku validacii?

Je FluentValidation AOT kompatibilne?

Ahoj.

My väčšinou používame Fluentvalidation a v naších scenárom nám to vyhovuje.

Pôvodné Model Validation je pevnou súčasnou MVC, preto nebolo podporené v Minimal API. Minulý rok som videl na GitHub-e proposal na návrhu vstavanej podpory validácie. Malo to byť zahrnuté do roadmapy pre ASP.NET 9, ale teraz som to pozeral a už nevidím :confused:

Či je FluentValidation kompatibilné s AOT neviem, snažil som sa o tom niečo nájsť, ale nenašiel som žiadnu zmienku. Keď budem pri PC tak vyskúšam. Ale je to otázne. Síce nepredpokladám že sa tam využíva reflexia, ale s expressions tree môže byť problém.

Btw, máš produkčný projekt kde si schopný použiť AOT? Pretože pre nás sú aktuálne obmedzenia dosť zásadné. Takže sa s tým zatiaľ len hrám.

Ok, vdaka za odpoved. Pri googleni som ani iny pristup ako FluentValidation nenasiel.

Ale je to otázne. Síce nepredpokladám že sa tam využíva reflexia, ale s expressions tree môže byť problém.

To si myslim aj ja.

Btw, máš produkčný projekt kde si schopný použiť AOT? Pretože pre nás sú aktuálne obmedzenia dosť zásadné. Takže sa s tým zatiaľ len hrám.

Pytal som sa skor teoreticky. Aj ked tento komponent by tie obmedznia zvladol, je to len REST API vrstva nad externe exe-cko (to exe-cko z pochopitelnych dovodou nechceme tahat do kritickej infrastruktury).