Laden...

Wie erstelle ich eine modulare Web API mit ASP.NET Core

Erstellt von webbies vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.494 Views
W
webbies Themenstarter:in
10 Beiträge seit 2014
vor 6 Jahren
Wie erstelle ich eine modulare Web API mit ASP.NET Core

Hallo zusammen,

ich möchte meine erste Web API basierend auf ASP.NET Core und dem Entity Framework Core umsetzen. Die Anwendung soll jedoch modular aufgebaut werden und hier komme ich nicht weiter. Generell hätte derzeit jedes Modul gedanklich folgende Struktur:

  • Controller
  • Data Transfer Objects
  • Models
  • Repositories

Jetzt soll natürlich auch alles zusammenspielen, d.h. einige Module sind untereinander abhängig und ich brauche dann natürlich noch die Hauptanwendung, die alles nach außen hin bereitstellt.

Kann mir jemand erklären, wie man modulare Web APIs aufbaut? Über google finde ich leider keine Beispiele, die mir weiterhelfen.

Grüße

webbies

2.207 Beiträge seit 2011
vor 6 Jahren

Hallo webbies,

was genau meinst du mit Modular? Abhängigkeiten werden per Referenz hergestellt. Oder du hast alles in einem Projekt und holst dir den Namespace. Oder was meinst du genau? 😃

Gruss

Coffeebean

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

davon ausgehend, dass du Controller, Views, etc. aus anderen Assemblies meinst hast du scheinbar nicht sauber gegoogelt.

Folgendes habe ich gefunden:

LG

PS: Beispielsweise für Repositories ist DependencyInjection angesagt und bereits im Standard vorhanden.

PPS: Ggf. wäre einer solchen Modularisierung aber auch eine Architektur von Microservices entgegenzustellen, die ggf. separat laufen. (Mal abgesehen vom View-Teil)

PPPS: Für Daten würde ich ehrlich gesagt auch Dapper in Betracht ziehen. Ist natürlich kein ORM - aber mit minimalem Einsatz lässt sich sehr einfach das Reposiory-Pattern und/oder UnitOfWork-Pattern einbauen und man muss nur noch recht wenig SQL schreiben. Bin mittlerweile ein wenig von ORM's weg, da ich gerade bei komplizierteren Aufgaben oft das Gefühl hatte diese zu vergewaltigen zu müssen - mal abgesehen vom Overhead der oft schlicht nicht benötigt wird...

16.842 Beiträge seit 2008
vor 6 Jahren

Bitte bedenken, dass man EF Core mit 1.0 nicht wirklich als production ready bezeichnen kann!

Modulare Web APIs baut man bei echten, größeren Anwendungen eher im Sinne von Microservices auf statt mehrere Busienss-Logikbausteine in einer Anwendung.
Kommt aber auf die Größe an.

Die Frage "Wie geht eine modulare WebAPI?" ist so ähnlich wie "wie backe ich ein Brot"?
Antwort: Nicht jedes Brot wird gleich gebacken -> nicht jede WebAPI hat den gleichen Aufbau / Aufgabe / Struktur.
Daher: hier gibt es keine pauschale Antwort.

Dapper und FluentMigrations sind eine sehr gute Alternative für EF.