Przejdź do treści stopki
Iron Academy Logo
Framework C#

4 opcje zastępujące Swagger w interfejsach API .NET 9

Tim Corey
30m 58s

Wraz z oficjalnym wydaniem .NET 9, Microsoft usunął wbudowane wsparcie dla Swagger UI w domyślnych szablonach web API. Podczas gdy niektórzy członkowie społeczności wyrazili zaniepokojenie tym przejściem, Tim Corey tłumaczy w swoim video, "4 Options to Replace Swagger in .NET 9 APIs", że ta zmiana faktycznie daje programistom większą elastyczność i czystsze oddzielenie kodu od narzędzi.

W tym artykułe zagłębimy się w cztery główne alternatywy dla Swagger UI w celu generowania dokumentacji OpenAPI w .NET 9, wszystkie oparte na praktycznych wskazówkach z wideo Tima. Jeśli chcesz zaktualizować istniejący projekt lub zacząć od nowa z minimalnymi API, ten przewodnik pomoże Ci zrozumieć dostępne narzędzia i jak wspierają standardy OpenAPI.

Konfiguracja standardowego projektu API

Tim zaczyna od stworzenia minimalnego projektu API w Visual Studio, wybierając standardowy szablon ASP.NET Core Web API.

Options Replace Swagger Dotnet 9 Apis 1 related to Konfiguracja standardowego projektu API

Podkreśla, aby zaznaczyć opcję dodania wsparcia OpenAPI, co zapewnia, że Twój projekt zawiera niezbędne generowanie dokumentu OpenAPI przez plik JSON.

Options Replace Swagger Dotnet 9 Apis 2 related to Konfiguracja standardowego projektu API

Gdy projekt działa, Tim przechodzi do domyślnego adresu URL dokumentu OpenAPI (np. /swagger/v1/swagger.json), aby zobaczyć surowe specyfikacje OpenAPI. Ten plik zawiera zorganizowane metadane na temat punktów końcowych API, w tym obsługiwane czasowniki, takie jak GET, POST i DELETE.

Options Replace Swagger Dotnet 9 Apis 3 related to Konfiguracja standardowego projektu API

Mimo że działa, Tim zauważa, że przeglądanie surowego dokumentu OpenAPI nie jest przyjazne dla użytkownika. Aby zapewnić lepszy interfejs dokumentacji internetowej, przechodzi do przedstawienia czterech zewnętrznych narzędzi, które poprawiają doświadczenia programistów i konsumentów.

Opcja 1: Swagger UI - Znane środowisko

Swagger UI nadal jest bardzo popularnym narzędziem, chociaż nie jest już domyślnie dołączane. Tim demonstruje, jak przywrócić je za pomocą wymagańego pakietu NuGet dotnet: Swashbuckle.AspNetCore.SwaggerUI.

Options Replace Swagger Dotnet 9 Apis 4 related to Opcja 1: Swagger UI - Znane środowisko

Po skonfigurowaniu Swagger UI w nowym projekcie, o 9:43, konfiguruje pośrednictwo za pomocą uproszczonej składni i ustawia adres URL uruchamiania na /swagger. Ten interfejs użytkownika zapewnia przyjazny interfejs dokumentacji API, w którym programiści mogą przeglądać końcówki, rozumieć parametry żądania i testować je w przeglądarce.

Options Replace Swagger Dotnet 9 Apis 5 related to Opcja 1: Swagger UI - Znane środowisko

Chociaż Swagger UI jest teraz narzędziem zewnętrznym, nadal wspiera specyfikacje OpenAPI i pozostaje jednym z najlepszych wyborów do podstawowych potrzeb dokumentacyjnych podczas rozwoju.

Opcja 2: ReDoc - Czysta, tylko do odczytu dokumentacja API

Drugim narzędziem Tima jest ReDoc, które przekształca dokument OpenAPI w wypolerowaną, tylko do odczytu stronę HTML. Po dodaniu pakietu OpenAPI Swashbuckle.AspNetCore.ReDoc, mapuje dokumentację na /api/docs.

Options Replace Swagger Dotnet 9 Apis 6 related to Opcja 2: ReDoc - Czysta, tylko do odczytu dokumentacja API

W przeciwieństwie do Swagger UI, ReDoc nie pozwala na testowanie punktów końcowych. Jednak wyróżnia się jako interfejs dokumentacji internetowej odpowiedni dla użytkowników zewnętrznych i klientów. Jeśli skupiasz się wyłącznie na definiowaniu REST API i wyświetlaniu zorganizowanej dokumentacji, ReDoc jest doskonałym wyborem.

Options Replace Swagger Dotnet 9 Apis 7 related to Opcja 2: ReDoc - Czysta, tylko do odczytu dokumentacja API

Warto zauważyć, że ReDoc automatycznie generuje treść na podstawie dostarczonych specyfikacji OpenAPI, obejmując oczekiwane odpowiedzi, parametry i typy danych. Jest to zgodne z projektami, które priorytetowo traktują zoptymalizowaną wbudowaną obsługę dokumentacji nad interaktywnością.

Opcja 3: NSwag - Dokumentacja + Generowanie kodu

Następnie Tim zagłębia się w NSwag, elastyczne i bogate w funkcje narzędzie, które robi więcej niż tylko dokumentację API - może również generować kod dla klientów w różnych językach, takich jak C#, TypeScript i inne. Po zainstalowaniu pakietu NuGet NSwag.AspNetCore, konfiguruje interfejs podobny do Swagger, mapując go na ten sam punkt końcowy JSON.

Options Replace Swagger Dotnet 9 Apis 8 related to Opcja 3: NSwag - Dokumentacja + Generowanie kodu

Tim wyjaśnia, że NSwag obsługuje zarówno specyfikacje Swagger, jak i standardy OpenAPI, pozwalając programistom wybrać preferowany format. Chociaż interfejs może wyglądać podobnie do Swagger, to zewnętrzne biblioteki narzędziowe i zaawansowane funkcje (jak automatyczne tworzenie klienta) sprawiają, że NSwag błyszczy.

Options Replace Swagger Dotnet 9 Apis 9 related to Opcja 3: NSwag - Dokumentacja + Generowanie kodu

Wskazuje, że zdolność NSwag do generowania kodu jest pomocna w redukowaniu ręcznego wysiłku przy integracji z API, zwłaszcza w projektach obejmujących wiele serwisów lub narzędzi zewnętrznych. To potężne rozwiązanie dla zespołów budujących solidną komunikację klient-serwer.

Opcja 4: Scałer - Ulubiona Tima do testowania API

Tim przedstawia Scałer UI jako swojego osobistego faworyta spośród wszystkich opcji, opisując go jako mieszankę Postman i dokumentacji w przeglądarce. Po dodaniu pakietu Scałer.AspNetCore, wystarczy jedna linia kodu (app.MapScałerApiReference()), aby umożliwić interfejs.

Options Replace Swagger Dotnet 9 Apis 10 related to Opcja 4: Scałer - Ulubiona Tima do testowania API

Scałer wspiera pełną interaktywność, w tym wykonywanie żądań z parametrami zapytania, nagłówkami i ciasteczkami. Co go wyróżnia, to natychmiastowe sprzężenie zwrotne - zwraca czas odpowiedzi, nagłówki i rezultaty ładunku natychmiast.

Wyjątkową cechą Scałer jest zdolność do generowania poleceń curl i fragmentów kodu klienta dla różnych języków (PHP, Node, Python, C# poprzez HttpClient i RestSharp). Tim uważa to za szczególnie użyteczne do szybkiego kopiowania i wklejania wywołań API podczas rozwoju.

Options Replace Swagger Dotnet 9 Apis 11 related to Opcja 4: Scałer - Ulubiona Tima do testowania API

Scałer pozwala również na przełączanie pomiędzy trybami jasnym i ciemnym, czyniąc go przyjazną dla użytkownika platformą dokumentacji API z miejscem na dalsze ulepszenia. Jako platforma API o otwartym kodzie źródłowym, Scałer nadal się rozwija z aktywnym utrzymaniem i dużym zainteresowaniem społeczności.

Końcowe myśli: Opcje dają elastyczność

W ostatnich minutach wideo, Tim podkreśla, że usunięcie Swagger UI z szablonów web .NET może wydawać się krokiem wstecz, ale jest to okazja do przyjęcia nowoczesnych, bardziej dostosowanych rozwiązań. Ta zmiana jest zgodna z szybkiymi cyklami wydawniczymi Microsoft, gdzie funkcje stają się bardziej modułowe i skupione.

Wsparcie OpenAPI teraz działa bardziej jako wsparcie pierwszoklasowe, a nie jako sztywna, natywna implementacja. Możesz swobodnie mieszać i dopasowywać narzędzia w zależności od potrzeb projektu - czy to interaktywne testowanie za pomocą Scałer, generowanie kodu klienta z NSwag, czy czyste wyjście z ReDoc.

Tim zachęca programistów do eksplorowania tych narzędzi, sprawdzenia, które pasują do ich przepływu pracy, a nawet użycia wielu interfejsów dla różnych środowisk (np. jeden dla rozwoju i inny dla publicznej dokumentacji). Fakt, że wszystkie te opcje wspierają specyfikacje OpenAPI i Swagger, oznacza, że nie jesteś przypisany do jednego dostawcy lub przepływu pracy.

Wnioski

Dzięki usunięciu Swagger UI jako domyślnego w .NET 9, programiści mają teraz swobodę wyboru najlepszego narzędzia do swoich potrzeb dokumentacji OpenAPI. Niezależnie czy dokumentujesz API HTTP, obsługujesz narzędzia zewnętrzne, czy wspierasz wewnętrzny rozwój, istnieje rozwiązanie, które zgadza się z Twoimi celami.

Dzięki narzędziom takim jak Swagger UI, ReDoc, NSwag i Scałer, dokumentówanie i testowanie API nigdy nie było bardziej dostosowane do potrzeb lub przyjazne dla programisty. Jak pokazuje nam Tim Corey w swoim wideo, wszystko, czego potrzeba to kilka pakietów, kilka linii kodu i chęć eksploracji narzędzi, które najlepiej służą Twojej aplikacji i zespołowi.

Hero Worlddot related to 4 opcje zastępujące Swagger w interfejsach API .NET 9
Hero Affiliate related to 4 opcje zastępujące Swagger w interfejsach API .NET 9

Zarabiaj więcej, dzieląc się tym, co kochasz

Tworzysz treści dla deweloperów pracujących z .NET, C#, Java, Python, czy Node.js? Zamień swoją wiedzę specjalistyczną na dodatkowy dochód!

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie