Im vorhergehenden Teil der Serie habe ich euch gezeigt, wie man mit einfachem Quellcode SQL-Tabellen erstellen und im Code nutzen kann. Darauf basierend, können wir nun die REST-API implementieren, die auf die Daten zugreift und unsere Frontend-Anwendung mit Inhalten versorgt.
Die Entwicklung unterscheidet sich grundsätzlich nicht von der mit einer On-Premise-Landschaft und trennt wie üblich die Endpunkte der API von der eigentlichen Geschäftslogik – also Controller und Service. Durch das Repository ist der Zugriff zur Datenquelle, auf dem die Geschäftslogik fungiert, zusätzlich abgekapselt. Deshalb ist nicht nur eine übersichtliche Code-Struktur durch die klare Trennung gegeben, sondern auch eine gewisse Portierbarkeit möglich. Migrationen nach anderen Datenquellen lassen sich dadurch wesentlich einfacher gestalten.
Als einfaches Beispiel habe ich einen Endpunkt vorbereitet:
[Route("restaurants")]
public class RestaurantController : ControllerBase
{
…
[HttpGet("")]
public async Task<IEnumerable<Restaurant>> GetAllAsync()
{
return await _restaurantService.GetAllAsync();
}
}
Wie man sehen kann, ruft der Endpunkt den entsprechenden Service auf, welcher wiederum die Daten durch das Repository erhält. Die Rückgabe wird automatisch in ein JSON-Format im Body der Antwort mitgegeben. Wichtig hierbei ist, dass die Anwendung sich mit der Datenbank verbinden kann, um überhaupt Daten abgreifen zu können. Hierfür muss in der Startup.cs ein Connectionstring zur SQL-Datenbank hinterlegt sein.
var OKBLOGSQL = Configuration.GetConnectionString("OKBLOGDatabase");
services.AddControllers();
services.AddDbContext<OKBLOGContext>(options =>
{
options.UseSqlServer(OKBLOGSQL);
});
Führt ihr die Anwendung lokal aus, muss der entsprechende String in der appsettings.Developement.json eingetragen sein. Diese wird benutzt, da per Default die Umgebungsvariable ASPNETCORE_EVNVIRONMENT auf „Developement“ gesetzt ist. Damit der Appservice auch auf den ConnectionString zugreifen kann, fügen wir diesen unter „Configuration“ hinzu.
Zusätzlich solltet ihr überprüfen, ob der App-Service die Voraussetzungen der Projektmappe erfüllt. In unserem Fall handelt es sich um eine .NET-5.0-Anwendung auf einer 32-Bit-Plattform.
Sind die Einstellungen korrekt, können wir unsere API veröffentlichen. Dazu geht ihr einfach per Rechtsklick auf das API-Projekt und wählt „Veröffentlichen“ aus. Ziel ist in Azure der Azure App Service. Da wir kein API Management betreiben, kann dieser Punkt übersprungen werden und veröffentlichen direkt unsere API.
Sobald die Veröffentlichung erfolgreich war, könnt ihr eure Endpunkte der API im Browser oder mit Hilfe von Tools wie Postman abrufen.
Im nächsten und letzten Teil der Serie zeige ich euch, wie man sich schnell eine Frontend-Anwendung zusammenbaut und unsere API integriert. Bis dahin viel Spaß beim selbst Ausprobieren! 🙂