Definicja #
ASP.NET Web API to framework Microsoft do budowania usług HTTP zgodnych z REST, działający na platformie .NET Framework. Został wprowadzony w 2012 roku jako część ASP.NET MVC 4 i szybko stał się standardem tworzenia REST API w ekosystemie Microsoft dla aplikacji działających na Windows Server z IIS.
Kluczowe cechy ASP.NET Web API:
- Content negotiation — automatyczne negocjowanie formatu odpowiedzi (JSON, XML) na podstawie nagłówka Accept; wbudowana serializacja przez Json.NET i XmlSerializer
- Routing — konwencjonalny routing ({controller}/{id}) lub attribute routing ([Route("api/products/{id:int}")])
- HttpMessageHandler pipeline — łańcuch handlerów do przetwarzania żądań i odpowiedzi HTTP; podobne do middleware ASP.NET Core
- Model binding i walidacja — automatyczne wiązanie parametrów z URL, query string i body; integracja z DataAnnotations
- OData support — opcjonalne wsparcie dla protokołu OData (filtrowanie, sortowanie, stronicowanie przez $filter, $orderby)
- Action filters — atrybuty do implementacji cross-cutting concerns (autoryzacja, logowanie, caching)
ASP.NET Web API vs ASP.NET Core Web API: ASP.NET Core Web API (od 2016) to przepisany od zera, cross-platform następnik. Działa na Linux, macOS i Windows, ma modularny middleware pipeline, wbudowany DI, wyższy performance i aktywny rozwój. ASP.NET Web API (non-Core) nie otrzymuje nowych funkcji — jest w trybie maintenance.
Zastosowania #
- Utrzymanie i rozwój istniejących systemów — legacy aplikacje .NET Framework 4.x z REST API zbudowanym na ASP.NET Web API
- Migracja do ASP.NET Core — analiza i przepisywanie kontrolerów, filtrów i middleware na Core-owy odpowiednik
- Integracja z systemami korporacyjnymi — starsze systemy ERP i CRM często eksponują lub konsumują API zbudowane na tym frameworku
- Dokumentacja historycznych projektów — zrozumienie architektury i konwencji projektów z lat 2012-2018
- Szkolenia i certyfikacje Microsoft — wiedza historyczna przydatna w starszych materiałach i egzaminach
Ścieżka nauki #
Znajomość ASP.NET Web API jest przydatna głównie w kontekście legacy systemów — nowe projekty powinny używać ASP.NET Core Web API.
Zacznij od (jeśli musisz pracować z legacy):
- Podstawy HTTP i REST — niezależne od frameworku, niezbędne dla każdego backend developera
- Routing w ASP.NET Web API: konwencjonalny i attribute routing
- ApiController i HttpResponseMessage — specyfika frameworku vs ASP.NET Core (IActionResult)
- Autofac lub Unity jako DI container — Web API nie ma wbudowanego DI w przeciwieństwie do Core
Następnie (migracja do Core):
- Porównanie: ApiController vs ControllerBase, HttpContext.Current vs HttpContext, HttpMessageHandler vs Middleware
- ASP.NET Core Web API — dokumentacja Microsoft, oficjalne tutoriale
- Narzędzia migracji: .NET Upgrade Assistant automatyzuje część przekształceń
- Minimalny API (ASP.NET Core 6+) — nowe podejście dla prostych serwisów HTTP
FAQ #
- Czy ASP.NET Web API i ASP.NET Core Web API to to samo?
- Nie — to dwa różne frameworki. ASP.NET Web API działa na .NET Framework (Windows/IIS), nie jest aktywnie rozwijany. ASP.NET Core Web API to przepisany od zera następnik — cross-platform, wyższy performance, aktywny rozwój, wbudowany DI. Nowe projekty zawsze powinny używać ASP.NET Core. Oba mają podobne API (ApiController, Route, HttpGet/Post), ale różnią się szczegółami implementacyjnymi.
- Jak migrować z ASP.NET Web API do ASP.NET Core?
- Migracja obejmuje: zmianę targetowania projektu z .NET Framework na .NET, aktualizację NuGet packages, przepisanie Startup/Global.asax na ASP.NET Core Program.cs, aktualizację kontrolerów (ApiController -> ControllerBase, HttpResponseMessage -> IActionResult), zamianę HttpMessageHandlers na Middleware, konfigurację wbudowanego DI zamiast zewnętrznego kontenera. .NET Upgrade Assistant automatyzuje część tych kroków.
- Jakie wersje .NET Framework obsługuje ASP.NET Web API?
- ASP.NET Web API 2.x (najnowsza wersja) wymaga minimum .NET Framework 4.5. Działa z .NET Framework 4.5, 4.6, 4.7 i 4.8. Nie działa z .NET 5/6/7/8/9 (Core) — do tych wersji służy ASP.NET Core Web API. ASP.NET Web API jest dostępny przez NuGet package Microsoft.AspNet.WebApi.
- Czy warto teraz uczyć się ASP.NET Web API?
- Dla nowych projektów — nie, ASP.NET Core Web API jest właściwym wyborem. Jednak jeśli pracujesz lub planujesz pracować z systemami legacy opartymi na .NET Framework, znajomość ASP.NET Web API jest przydatna. Wiele dużych firm finansowych, ubezpieczeniowych i produkcyjnych nadal utrzymuje systemy z lat 2012-2018 oparte na tej technologii.