2013-02-02 13 views
15

Używam interfejsu WebAPI Versioning package do wersji mojego API przez X-Api-Header za pomocą "VersionHeaderVersionedControllerSelector". Używam również Microsoft.AspNet.WebApi.HelpPage do autogenerowania dokumentacji API. Aby kontroler versionign do pracy, muszą zostać przestrzeni nazw z VersionXYZ jako przyrostek w obszarze nazw, tak że „VersionHeaderVersionedControllerSelector” jest w stanie trasie wniosek do odpowiedniej wersji sterownika tak:Generowanie stron dokumentacji specyficznej dla wersji aplikacji ASP.NET Web API

namespace WEBAPI.Api.Controllers.Version1 
{ public class ProductsController : ApiController {} } 

namespace WEBAPI.Api.Controllers.Version2 
{ public class ProductsController : ApiController {} } 

To działa zgodnie z oczekiwaniami, ale kiedy patrzę na wygenerowanych stronach pomóc ApiDescription jest tym „VersionXYZ” przyrostek od nazw w ID (GETapi/Version1.Products) i relativePath (aPI/Version1.Products) nieruchomości. Idealnie chciałbym mieć stronę pomocy na najwyższym poziomie, która tylko numery wersji API i wiercenie w programie wskazywałyby API w zwykły sposób tj. ApiDescription.ID = GETapi/Products i ApiDescription.RelativePath = api/Produkty

Czy istnieje sposób, aby to osiągnąć stosując Out of the Box API lub mam zamiar trzeba rolecie własną implementację ApiExplorer

+0

Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? – TheQ

+0

Czy to asp.net web api 2.0? –

Odpowiedz

0

Niestety ApiExplorer nie obsługuje zduplikowane nazwy kontrolera. Tak więc, stosując taką wersję kontrolera, twój kod (lub kod pakietu) nie ładnie gra z systemem.

Zastanów się nad inną alternatywą, kiedy faktycznie zmienisz nazwę kontrolera (i tak, będziesz musiał wdrożyć własne rozwiązanie, ale szczerze mówiąc nie jest to tak skomplikowane). Na przykład spraw, aby wersja była częścią samej nazwy kontrolera (zamiast jej przestrzeni nazw).

np. Ver1_ProcuctsController

Teraz te zaczną pojawiać się na twojej stronie pomocy, a ponieważ strona pomocy to tylko pakiet zawartości, możesz zmienić logikę, aby nazwy, które zaczynają się od verxxx_ do mutowania.

1

Sprawdź tę odpowiedź Get Help page works with Api Versioning

Sprawdź, czy masz prawo skonfigurować wersjonowania, i trzeba uzyskać plik XML dokumentacji z projektu XXXX.Api.v1 projektu i umieścić go w folderze bin XXXX Projekt .Api.

Powiązane problemy