Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku z kodem pokazano, jak utworzyć strony pomocy dla internetowego interfejsu API ASP.NET w programie ASP.NET 4.x.
Podczas tworzenia internetowego interfejsu API często warto utworzyć stronę pomocy, aby inni deweloperzy wiedzieli, jak wywoływać interfejs API. Całą dokumentację można utworzyć ręcznie, ale lepiej jest automatycznie wygenerować jak najwięcej. Aby ułatwić to zadanie, ASP.NET Web API udostępnia bibliotekę do automatycznego generowania stron pomocy w czasie działania.
Tworzenie stron pomocy API
Zainstaluj ASP.NET i Web Tools 2012.2 Update. Ta aktualizacja dodaje strony pomocy do szablonu projektu interfejsu API sieci Web.
Następnie utwórz nowy projekt ASP.NET MVC 4 i wybierz szablon projektu internetowego interfejsu API. Szablon projektu tworzy przykładowy kontroler interfejsu API o nazwie ValuesController. Szablon tworzy również strony pomocy dla interfejsu API. Wszystkie pliki kodu strony pomocy są umieszczane w folderze Obszary projektu.
Po uruchomieniu aplikacji strona główna zawiera link do strony pomocy interfejsu API. Na stronie głównej ścieżka względna to /Help.
Ten link umożliwia wyświetlenie strony podsumowania interfejsu API.
Widok MVC dla tej strony jest zdefiniowany w pliku Areas/HelpPage/Views/Help/Index.cshtml. Możesz edytować tę stronę, aby zmodyfikować układ, wprowadzenie, tytuł, style itd.
Główną częścią strony jest tabela interfejsów API pogrupowana według kontrolera. Wpisy tabeli są generowane dynamicznie przy użyciu interfejsu IApiExplorer . (Porozmawiam więcej o tym interfejsie później). Jeśli dodasz nowy kontroler interfejsu API, tabela zostanie automatycznie zaktualizowana w czasie wykonywania.
Kolumna "API" zawiera listę metod HTTP i względnych URI. Kolumna "Opis" zawiera dokumentację dla każdego interfejsu API. Początkowo dokumentacja jest tylko tekstem zastępczym. W następnej sekcji pokażę, jak dodać dokumentację z komentarzy XML.
Każdy interfejs API ma link do strony z bardziej szczegółowymi informacjami, w tym przykładowe treści żądań i odpowiedzi.
Dodawanie stron pomocy do istniejącego projektu
Można dodawać strony pomocy do istniejącego projektu Web API przy użyciu Menedżera pakietów NuGet. Ta opcja jest przydatna, gdy rozpoczynasz pracę z innym szablonem projektu niż projekt Web API.
W menu Narzędzia wybierz pozycję Menedżer pakietów NuGet, a następnie wybierz pozycję Konsola menedżera pakietów. W oknie Konsola menedżera pakietów wpisz jedno z następujących poleceń:
W przypadku aplikacji w języku C# : Install-Package Microsoft.AspNet.WebApi.HelpPage
W przypadku aplikacji Visual Basic : Install-Package Microsoft.AspNet.WebApi.HelpPage.VB
Istnieją dwa pakiety: jeden dla języka C# i jeden dla języka Visual Basic. Upewnij się, że używasz tego, który jest zgodny z projektem.
To polecenie instaluje niezbędne zestawy i dodaje widoki MVC dla stron pomocy (znajdujących się w folderze Areas/HelpPage). Musisz ręcznie dodać link do strony Pomoc. Identyfikator URI to /Help. Aby utworzyć link w widoku razor, dodaj następujące elementy:
@Html.ActionLink("API", "Index", "Help", new { area = "" }, null)
Pamiętaj również, aby zarejestrować obszary. W pliku Global.asax dodaj następujący kod do metody Application_Start , jeśli jeszcze nie istnieje:
protected void Application_Start()
{
// Add this code, if not present.
AreaRegistration.RegisterAllAreas();
// ...
}
Dodawanie dokumentacji interfejsu API
Domyślnie strony pomocy mają ciągi zastępcze dla dokumentacji. Aby utworzyć dokumentację, możesz użyć komentarzy dokumentacji XML . Aby włączyć tę funkcję, otwórz plik Areas/HelpPage/App_Start/HelpPageConfig.cs i usuń komentarz w następującym wierszu:
config.SetDocumentationProvider(new XmlDocumentationProvider(
HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));
Teraz włącz dokumentację XML. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz polecenie Właściwości. Wybierz stronę Build.
W obszarze Dane wyjściowe sprawdź plik dokumentacji XML. W polu edycji wpisz "App_Data/XmlDocument.xml".
Następnie otwórz kod kontrolera interfejsu ValuesController API, który jest zdefiniowany w /Controllers/ValuesController.cs. Dodaj komentarze dokumentacyjne do metod kontrolera. Przykład:
/// <summary>
/// Gets some very important data from the server.
/// </summary>
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
/// <summary>
/// Looks up some data by ID.
/// </summary>
/// <param name="id">The ID of the data.</param>
public string Get(int id)
{
return "value";
}
Uwaga / Notatka
Wskazówka: Jeśli umieścisz kursor w wierszu powyżej metody i wpiszesz trzy ukośniki przednie, program Visual Studio automatycznie wstawia elementy XML. Następnie możesz wypełnić puste.
Teraz skompiluj i uruchom ponownie aplikację i przejdź do stron pomocy. Ciągi dokumentacji powinny być wyświetlane w tabeli interfejsu API.
Strona pomocy odczytuje ciągi z pliku XML w czasie wykonywania. (Podczas wdrażania aplikacji upewnij się, że wdrożono plik XML).
Pod kapturem
Strony pomocy są oparte na klasie ApiExplorer , która jest częścią struktury internetowego interfejsu API. Klasa ApiExplorer udostępnia materiał pierwotny do tworzenia strony pomocy. Dla każdego API, ApiExplorer zawiera ApiDescription, które opisuje API. W tym celu "interfejs API" jest definiowany jako kombinacja metody HTTP i względnego identyfikatora URI. Oto na przykład kilka odrębnych interfejsów API:
- GET /api/Products
- GET /api/Products/{id}
- POST /api/Products
Jeśli akcja kontrolera obsługuje wiele metod HTTP, interfejs APIExplorer traktuje każdą metodę jako odrębny interfejs API.
Aby ukryć interfejs API przed ApiExplorer, dodaj atrybut ApiExplorerSettings do akcji i ustaw IgnoreApi na wartość true.
[ApiExplorerSettings(IgnoreApi=true)]
public HttpResponseMessage Get(int id) { }
Możesz również dodać ten atrybut do kontrolera, aby wykluczyć cały kontroler.
Klasa ApiExplorer pobiera ciągi dokumentacji z interfejsu IDocumentationProvider . Jak pokazano wcześniej, biblioteka Stron pomocy udostępnia element IDocumentationProvider , który pobiera dokumentację z ciągów dokumentacji XML. Kod znajduje się w folderze /Areas/HelpPage/XmlDocumentationProvider.cs. Dokumentację możesz uzyskać z innego źródła, pisząc własny element IDocumentationProvider. Aby go skonfigurować, wywołaj metodę rozszerzenia SetDocumentationProvider, zdefiniowaną w HelpPageConfigurationExtensions
APIExplorer automatycznie wywołuje interfejs IDocumentationProvider w celu uzyskania ciągów dokumentacji dla każdego API. Przechowuje je we właściwości Documentation obiektów ApiDescription i ApiParameterDescription .
Dalsze kroki
Nie ograniczasz się do stron pomocy przedstawionych tutaj. W rzeczywistości usługa ApiExplorer nie jest ograniczona do tworzenia stron pomocy. Yao Huang Lin napisał kilka świetnych wpisów na blogu, które pomogą ci myśleć nieszablonowo.
- Dodawanie prostego klienta testowego do strony pomocy interfejsu API sieci Web ASP.NET
- Umożliwienie działania Strony pomocy ASP.NET Web API na usługach samodzielnie hostowanych
- Generowanie w czasie projektowania strony pomocy (lub klienta) dla interfejsu Web API ASP.NET
- Zaawansowane dostosowania strony pomocy