=
APIC Tato část webu se věnuje best-practices v souvislosti s architekturou REST API. Je určena zejména pro mé klienty, kterým jsem vytvářel architekturu aplikací. Najdete zde tipy na osvědčené přístupy v souvislosti s architekturou REST API.

Nová implementace pro metodu HttpOptions

Framework má špatnou podporu metody HttpOptions. Dosavadní mé řešení spočívalo v kombinaci middleware a flagování metod v controlleru. Novější řešení je postavené na výchozím chování ASP.NET Core frameworku a je 100% automatizované.

Abstrakt

Metoda HttpOptions je používána zejména při komunikaci v rámci CORS. Lze ale předpokládat, že browser bude vyžadovat informaci o povolených HTTP metodách na zvolené URL právě pomocí OPTIONS metody. Když REST API server odpovídá na OPTIONS požadavek, měl by vrátit metadata popisující vlastnosti komunikace. Typicky se jedná o HTTP hlavičku Allow se seznamem podporovaných HTTP metod na zvoleném resource. Server obvykle nevrací žádný payload a tudíž je typický success code 204 (No Content) v kombinaci s HTTP hlavičkou Content-Length a hodnotou "0".

Dosavadní mé řešení využívalo endpoint routing pro nalezení všech URL, které v projektu podporují OPTIONS metodu a následné vrácení Allow hlavičky na základě dalších objevených HTTP metod na daném resource. Řešení má však jednu nevýhodu. Vývojář musí použít atribut [HttpOptions] na správném místě v controllerech. V případě nepozornosti může způsobit konflikt v URL routách.

Dotčené aplikace

Vylepšení se týká všech zákazníků. Obvyklá implementace je v souboru OptionsMiddleware nebo podobném.

Řešení

Microsoft podporuje metodu HTTP Options jen pokud je tato HTTP metoda byla uvedena jako atribut nad action metodou v controlleru. Toto řešení má však nevýhody a může způsobit konflikty. Zároveň není automatizované. Framework však vrací chybu v případě, kdy HTTP metoda odeslaná klientem není na straně serveru podporována.

Nové řešení staví právě na tomto chování. Pokud framework vrací chybu v případě OPTIONS metody, OptionsMiddleware tuto chybu objeví a přepíše na status 204. Framework vrací automaticky hlavičku Allow s podporovanými metodami, které middleware pouze doplní o metodu OPTIONS.

Ke stažení

Miroslav Holec

Miroslav Holec

7. 4. 2021

ENHANCEMENT Vylepšení stávajícího chování. Obvykle není nutné jej implementovat.

Videa

RestApi.CZ

Právě jsem spustil průvodce Designem REST API

📖 Přečíst restapi.cz

Veřejná školení Místo Datum Délka Cena bez DPH Poznámky
Novinky v .NET 6 a C# 10 online 13. 10. 2022 1 den 3 900 Kč poslední šance registrovat
Vývoj aplikací v ASP.NET Core Praha + online 11/2022 1 den 4 900 Kč bestseller registrovat
Blazor Server & WebAssembly Praha + online 11/2022 2 dny 10 900 Kč registrovat
ASP.NET Core gRPC Praha + online 11/2022 1 den 4 900 Kč registrovat
Design REST API a Design First Praha + online 11/2022 2 dny 9 900 Kč exkluzivní registrovat
Vývoj REST API s Minimal APIs Praha + online 11/2022 1 den 5 900 Kč exkluzivní registrovat
Vývoj REST API v .NET MVC Praha + online 11/2022 1 den 4 900 Kč bestseller registrovat
Entity Framework Core Praha + online 11/2022 2 dny 11 900 Kč registrovat
Vývoj .NET aplikací pro Azure Praha + online 11/2022 1 den 5 900 Kč nový registrovat

kontakt zde

Dotazy, poptávky a objednávky

mirek@miroslavholec.cz
Loading