2015-05-05 16 views
8

Próbuję skonfigurować aplikację Api (Azure) z Swagger + Swashbuckle, jak zademonstrował Scott Hanselman na konferencji // Build tutaj: http://channel9.msdn.com/Events/Build/2015/2-628.Swagger w/ASP.NET v5 Azure Api App

Zainstalowałem (używając NuGet) pakiety Swagger.Api i Swashbuckle.Core. Nie dodano żadnego kontrolera ani ustawień, których oczekiwałbym, aby mieć stronę przekupującą. Gdy przechodzę do {baseUrl} \ swagger, pojawia się błąd 404.

Myślę, że skoro ma interfejs użytkownika, to oprócz aplikacji Api będzie wymagać aplikacji sieci Web, ale przejrzałem wersję demonstracyjną, a Scott wyraźnie mówi, że możesz dodać Swagger + Swashbuckle do dowolnej aplikacji Api. Jednak w drugiej aplikacji mogą wystąpić problemy z wykrywaniem Api. Czy ktoś skonfigurował to pomyślnie?

Project with swagger

Odpowiedz

2

Ty nie wszystkie właściwe kroki, ale niestety dla ASP.NET 5, Swashbuckle jeszcze nie działa.

Możesz dostać Ahoy! która jest następną wersją Swashbuckle z obsługą ASP.NET v6 here. To powinno sprawić, że wszystko będzie działać.

+0

kłopoty coraz to do pracy (lub nawet uruchomione ich przykłady źródła). Przykład BasicAPI po prostu trafia do index.html i pokazuje pole do wpisania adresu URL i apikey. –

+1

To jest na etapie 6.0 beta w głównym projekcie Swashbuckle. –

12

Czas na rolkach i teraz Swashbuckle pracuje vNext (beta8 dla mnie, prawdopodobnie inne wersje też) - dziękuję zespołowi i współpracowników!

W project.json dodać pakiet:

"Swashbuckle": "6.0.0-*", 

W startup.cs w ConfigureServices():

 services.AddSwaggerGen(); 
     services.ConfigureSwaggerDocument(options => 
     { 
      options.SingleApiVersion(new Info 
      { 
       Version = "v1", 
       Title = "My Super API", 
       Description = "A Super API using Swagger and Swashbuckle", 
       TermsOfService = "" 
      }); 

     }); 
     services.ConfigureSwaggerSchema(options =>{ 
      options.DescribeAllEnumsAsStrings = true; 
     }); 

W startup.cs w Konfiguracja():

 app.UseSwaggerGen(); 
     app.UseSwaggerUi(); 

Teraz możesz uzyskać dostęp do swojego dokumentu API - http://domain:port/swagger/ui/index.html

Dostęp twoja definicja Swagger - http://domain:port/swagger/v1/swagger.json

Następnie zakładając, że mają co najmniej jeden www skierowana dev/UAT/oczekiwania/środowisku produkcyjnym, chwyć URL definition następnie zrobić Plik-> Importuj URI w http://editor.swagger.io/ - teraz masz kodu-gen dla około 20 klientów też :)

Możesz także ustawić swój własny serwer kodu, jeśli jesteś tak pochylony (https://github.com/swagger-api/swagger-codegen), jednak użyłem istniejącego generatora online. Edytor online ma również pełne definicje modelu i relacji, przynajmniej w moim przypadku, w którym w pełni zdefiniowałem mój model za pomocą EF7 (wiem, ick ... ale jest znacznie lepszy niż < = EF6 i ServiceStack nie obsługuje CoreCLR, jeszcze) . W zależności od wielkości projektu może to zaoszczędzić od kilku godzin do kilku tygodni dokumentowania pracy, a ponadto dynamicznie aktualizuje się, gdy kodujesz więcej.Możesz go użyć do przetestowania punktów końcowych, ale ja wolę PostMan.

Pełna przykładowy projekt w https://github.com/mrsheepuk/ASPNETSelfCreatedTokenAuthExample/tree/beta8

Big up dla MrSheepUK

HTH

Powiązane problemy