Patrick Schnell Selbstständig

Mit den Möglichkeiten des ASP.NET-Core-Web-API sowie den Swagger-Tools, um eine anerkannte und standardisierte Dokumentation zu erhalten, können Schnittstellen bereits während der Entwicklung sauber getestet und dokumentiert werden.

Das Entwickeln und Einführen von Web-APIs bringt viele Fallstricke mit sich. Mit entsprechenden Vorbereitungen und Tools können einfache und testbare APIs entwickelt werden, und darüber hinaus kann auch das manuelle Programmieren von Client-Code umgangen werden.

In den letzten Jahren entwickelte sich die Softwarearchitektur von großen und schwerfälligen Anwendungen hin zu einer Vielzahl von kleinen einfachen Systemen, die intelligent miteinander über einen zentralen Service verknüpft werden. Einen großen Schub hierfür brachte vor allem die Entwicklung von Apps für mobile Endgeräte, aber auch das Cloud Computing. Eine moderne Anwendung besteht demnach heutzutage nicht mehr rein aus Datenbank und Anwendung, sondern zusätzlich aus einem vom Client verwendeten Service. Dieser Service, der im Normalfall als RESTful Web-API umgesetzt wird, kümmert sich neben der Geschäftslogik ebenfalls um die Auswertung, Filterung und schlussendlich um die Persistenz der Daten.

Web-APIs machen im Normalfall nur dann Sinn, wenn der Client so kompakt und schlank wie möglich gehalten werden soll oder es eben nicht nur eine einzelne Endanwendung gibt. Plant man demnach damit, in mittelfristiger Zeit eine konventionelle Desktopanwendung in das Web oder auf ein mobiles Endgerät zu bringen, können so Ressourcen eingespart und Fehlerquellen reduziert werden.

Artikelserie

  • Teil 1: ASP.NET-Core-Web-API effizient nutzen
  • Teil 2: .NET Core und MongoDB – Datenzugriff, Zugriffssteuerung und Abstraktion

Warum Web-APIs einsetzen?

Ein Beispiel für den Einsatz eines Web-API ist die Validierung von Telefonnummern. Gehen wir zunächst davon aus, dass eine serverseitige Datenbank besteht, in der die Telefonnummern als ein String bzw. Varchar hinterlegt werden. Die Endanwendung muss nun, bevor ein Eintrag geändert oder hinzugefügt wird, die entsprechende Validierung durchführen. Diese ist im bestmöglichen Fall als Regular Expression fest definiert. Sobald eine weitere Anwendung, zum Beispiel eine App oder auch nur ein einfaches Importtool, Daten in eben dieser Tabelle editieren möchte, muss exakt dieselbe Prüfung ebenfalls in der neuen Anwendung umgesetzt werden. Sollte sich nun nach einigen Jahren die Validierungsprüfung ändern, muss diese entsprechend an allen Stellen nachgepflegt werden. Mit ziemlicher Sicherheit ist hier zu sagen, dass mindestens eine Anwendung vergessen wird und somit invalide Daten in das System geschrieben werden können. Würden die Anwendungen nun, anstatt direkt auf die Datenquelle zuzugreifen, ein Web-API verwenden, das zentralisiert diese Validierungen ausführt, hätte man hier eine wartbare und testbare Möglichkeit geschaffen, um auf Änderungen der Validierungsprüfung zu reagieren. Dieses Beispiel kann hierbei analog zu Validierungen ebenfalls auf die Filterung von Daten, Berechtigungsprüfungen und viele weitere Anwendungsszenarien angewandt werden.

Um eben diese Probleme konsequent zu vermeiden, müssen bei komplexeren verteilten Anwendungen zwingend Web-APIs eingesetzt werden, um die Daten- und Businesslogikschicht zu abstrahieren. Hierbei ist jedoch darauf zu achten, dass das API entsprechend versioniert umgesetzt wurde und sämtliche Schnittstellen klar dokumentiert wurden. Eine Möglichkeit der Dokumentation bietet das nachfolgend vorgestellte Swagger, das den Einsatz der OpenAPI-Spezifikation ermöglicht.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Windows Developer 11.17 - "Serverless durch die Cloud"

Alle Infos zum Heft
579813911Easy-Mode für ASP.NET Core Web-APIs: Swagger
X
- Gib Deinen Standort ein -
- or -