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

Suche

über alle News und Events

 

Alle News

 

Für Entwickler, Architekten, Projektleiter und...

Weiterlesen

In der Welt der Softwareentwicklung ist die...

Weiterlesen

QUIBIQ spendet für den guten Zweck – und für...

Weiterlesen

Eine bestimmte Antwort auf einen HTTP Request zu...

Weiterlesen

In einer Welt, die von stetigem Wandel geprägt...

Weiterlesen

In einem unserer Kundenprojekte, war das Ziel eine...

Weiterlesen

QUIBIQ Hamburg wird mit dem Hamburger...

Weiterlesen

Zwei Tage lang wurde vom 14.-15.11 wieder das...

Weiterlesen

Was ist ein Excel-Plugin – und wann ist es...

Weiterlesen

Wir expandieren, bringen Kunden und Talente besser...

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