2015-05-05 8 views
8

Ich versuche, eine Api App (Azure) mit Swagger + Swashbuckle einzurichten, wie von Scott Hanselman auf der Konferenz // Build hier gezeigt: http://channel9.msdn.com/Events/Build/2015/2-628.Swagger mit ASP.NET v5 Azure API App

Ich habe installiert (mit NuGet) die Pakete Swagger.Api und Swashbuckle.Core. Es hat keine Controller oder Einstellungen hinzugefügt, die ich erwarten würde, um eine protzige Seite zu haben. Wenn ich zu {baseUrl} \ swagger navigiere, erhalte ich einen Fehler 404.

Ich würde denken, dass, da es eine Benutzeroberfläche hat, würde es eine Web-App zusätzlich zu der Api-App erfordern, aber ich habe die Demo überarbeitet und Scott sagt eindeutig, dass Sie Swagger + Swashbuckle zu jeder Api-App hinzufügen können. In einer zweiten App würde ich allerdings denken, dass es Probleme mit der Api-Entdeckung geben könnte. Hat jemand das noch erfolgreich eingerichtet?

Project with swagger

Antwort

2

Diese Antwort ist nicht mehr aktuell. Siehe die andere Antwort.

Es gibt einen schönen Blogpost beschreibt das Problem, das Sie haben: https://alexanderzeitler.com/articles/Deploying-a-ASP-NET-MVC-6-API-as-Azure-API-App-in-Azure-App-Services/

Dies beschreibt, wie Sie die Ahoy hinzufügen können! Paket zu einem ASP.NET v6 Web API-Projekt hinzufügen und dieses als eine API-App zu Azure hinzufügen.

Hier ist eine weitere Quelle: http://devmeetsbi.ghost.io/help-and-test-page-for-asp-net-web-api-asp-net-5-and-mvc-6/

2

Sie haben alle die richtigen Schritte, aber leider für ASP.NET 5, ist Swashbuckle noch nicht funktionieren.

Sie können Ahoi bekommen! Das ist die nächste Version von Swashbuckle mit ASP.NET v6-Unterstützung here. Das sollte alles funktionieren lassen.

+0

Problem haben, diese Arbeit bekommen (die Source-Beispiele laufen oder gerade). Das BasicAPI-Beispiel geht einfach zu index.html und zeigt ein Feld zum Eingeben einer URL und eines apikey an. –

+1

Dies ist jetzt bei 6.0 Beta-Phase im Haupt-Swashbuckle-Projekt. –

12

Zeit rollt auf und jetzt Swashbuckle arbeitet für vNext (beta8 für mich, wahrscheinlich andere Versionen auch) - vielen Dank an das Team und Mitwirkenden!

In project.json fügt das Paket:

"Swashbuckle": "6.0.0-*", 

In startup.cs in 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; 
     }); 

In startup.cs in Configure():

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

Jetzt können Sie auf Ihre API doco zugreifen - http://domain:port/swagger/ui/index.html

Zugriff auf Ihre Swagger Definition - http://domain:port/swagger/v1/swagger.json

Dann dev zugewandt Sie haben mindestens einen Internet unter der Annahme/uat/staging/prod Umgebung, die Definition URL greifen dann tun File-> Import URI bei http://editor.swagger.io/ - jetzt Sie Code-gen haben für etwa 20 Kunden auch :)

Sie können auch Ihren eigenen Code-Gen-Server einrichten, wenn Sie auch so geneigt sind (https://github.com/swagger-api/swagger-codegen), aber ich nutzte den vorhandenen Online-Generator. Das Online-Editor hat auch vollständige Modell und Beziehungsdefinitionen auch zumindest in meinem Fall, in dem ich mein Modell vollständig mit EF7 definiert (ich weiß, ick ... aber es ist viel besser als < = EF6 und ServiceStack nicht CoreCLR unterstützen, noch) . Abhängig von der Größe Ihres Projekts können Sie dadurch ein paar Stunden bis zu einigen Wochen Arbeitsdokumenten sparen und sich dynamisch aktualisieren, während Sie mehr Code schreiben.Und Sie können damit auch Ihre Endpunkte testen, aber ich bevorzuge immer noch PostMan.

Vollbeispielprojekt bei https://github.com/mrsheepuk/ASPNETSelfCreatedTokenAuthExample/tree/beta8

Big ups zu MrSheepUK

HTH

Verwandte Themen