CONNECTED Conference 2023 - Aufzeichnungen jetzt hier verfügbar +++                     

Suche

über alle News und Events

 

Alle News

 

Durable Function ist eine Erweiterung der...

Weiterlesen

Wir haben eine gute, vor allem spannende und hoch...

Weiterlesen

Am 09.05.2022 wurde ein Artikel von Microsoft...

Weiterlesen

Neben den altbekannten Logic Apps (Consumption),...

Weiterlesen

Im Jahr 2022 fallen eine Reihe von .Net Versionen...

Weiterlesen

SAP in die Power Platform integrieren – In einem...

Weiterlesen

Bicep Templates benutzen eine deklarative Syntax...

Weiterlesen

In BizTalk gibt es einige Alternativen, wie...

Weiterlesen

Wir sind auf ein seltsames Phänomen bei einem...

Weiterlesen

Nach der Migration konnten in VS 2019 „normale“...

Weiterlesen

How-to: Swaggerizing mit Swashbuckle von bestehenden WebApi Schnittstellen

RESTful- APIs ein großes Problem. Man kann den Server leider nicht fragen, welche Services er anbietet. SOAP- Services bieten eine WSDL an, in der alles genau beschrieben ist, was angeboten wird. Mit Swashbuckle kann man sich den Code generieren lassen, der die Schnittstelle beschreibt. 

Die Spezifikationen von REST- APIs sehen in der Regel folgendermaßen aus:
 

Action

URI

HTTP Verb

Read all objects

/api/objects

GET

Read object with id 777

/api/objects/777

GET

Create object

/api/objects

POST

Delete object with id 777

/api/objects/777

DELETE

Update object with id 777

/api/objects/777

PUT

 

Nachdem die API in dieser oder ähnlicher Form spezifiziert wurde kann man Sie mit ASP.Net Wep Api entwickeln.

 

public class ObjectsController : ApiController

    {

        // GET api/objects

        public IEnumerable<string> Get()

        {

            // Returns all objects

        }

 

        // GET api/objects/777

        public string Get(int id)

        {

            // Returns object with id 777

        }

 

        // POST api/objects

        public void Post([FromBody]string value)

        {

            // Creates object

        }

 

        // DELETE api/objects/777

        public void Delete(int id)

        {

            // Deletes object with id 777

        }

 

        // PUT api/objects/777

        public void Put(int id, [FromBody]string value)

        {

            // Updates object with id 777

        }

 

    }
 

An dieser Stelle haben wir die API, jedoch fehlt eine Dokumentation zu dem Service. Wir haben leider keine WSDL, die wir einem Entwickler geben können, der diese Schnittstelle anzapfen soll.

Mit Swagger kann man Schnittstellen im Browser dokumentieren. Erstellt man sich diese Swagger Dokumentationen erhält man sehr ansehnliche Dokumentationen im Browser.  Auf der Swagger -Homepage gibt es auch ein Beispiel mit einem PetShop (siehe https://swagger.io/tools/swagger-editor/).

 

Jedoch ist es mit einem Riesenaufwand verbunden diese YAML-Files manuell zu erstellen. Um mit weniger Aufwand eine Dokumentation zu erstellen haben wir die Möglichkeit in unserem Projekt ein Nuget-Package hinzuzufügen, welches die Erstellung für uns übernimmt. Dazu muss man zunächst das SwashBuckle-Package herunterladen.

 

Nuget Package Manager öffnen:


 

Swashbuckle suchen und ein Doppelklick ausführen.

 


 

Danach die Installation starten.


 

Die erfolgreiche Installation erkennt man den dem grünen Haken im Nuget Package Manager:


 

Außerdem gibt es jetzt eine neue Config unter dem App_Start Ordner: SwaggerConfig.cs



 

Der Code sieht folgendermaßen aus:

 

using System.Web.Http;

using WebActivatorEx;

using Objects.WebApi;

using Swashbuckle.Application;

 

[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]

 

namespace Objects.WebApi

{

    public class SwaggerConfig

    {

        public static void Register()

        {

            var thisAssembly = typeof(SwaggerConfig).Assembly;

 

            GlobalConfiguration.Configuration

                .EnableSwagger(c =>

                    {

                       

                        c.SingleApiVersion("v1", "Objects.WebApi");

 

                       

                    })

                .EnableSwaggerUi(c =>

                    {

                    });

        }

    }

}

 

Wenn man den Browser nun öffnet und localhost/swagger erhält man folgende Ansicht:




Hier hat man dann nicht nur eine komplette Dokumentation der Web Api Schnittstelle, sondern auch einen Testclient. Das bedeutet, dass man auf Tools wie Postman oder SOAPUI für Tests verzichten kann.

 

Have fun!

Ihre Kontaktmöglichkeiten

Sie haben eine konkrete Frage an uns


 

Bleiben Sie immer auf dem Laufenden


 

Mit meinem "Ja" erkläre ich mich mit der Verarbeitung meiner Daten zur Zusendung von Informationen einverstanden. Ich weiß, dass ich diese Erklärung jederzeit durch einfache Mitteilung widerrufen kann. Bei einem Nein an dieser Stelle erhalte ich zukünftig keine Informationen mehr.

© QUIBIQ GmbH · Impressum · Datenschutz