1. Home
  2. Docs
  3. Nutzung und Design der App
  4. REST-Api

REST-Api

Es gibt 2 Gründe wann REST-APIs erstellt und verwendet werden können.

Der 1. ist, wenn beim Erstellen der Lösung mit dem appsolut-Architect „REST-API“ angehakt wurde.
In diesem Fall sind in dem Bestätigungsemail, welches Du nach dem Erstellen der Lösung im appsolut-Architect zugeschickt bekommst, neben den Zugangsdaten zu Deiner Web-Lösung auch die URL sowie sämtliche notwendigen Informationen zur Authentifizierung und Verwendung der APIs enthalten.

Über die mitgeschickte „Swagger“-URL wird Dir auch ein einfacher und übersichtlicher Überblick über alle zur Verfügung stehenden APIs geboten.

Die Kommunikation mit den APIs wird über einen tokenbasierten „BASIC“-Authentifizierungsmechanismus ermöglicht.

Das bedeutet, dass jeder Request einen gültigen Token als Header-Parameter mitliefern muss. Dieser Token kann über die GetToken-API erstellt werden.

Jeder Token ist 10 Minuten gültig, danach muss erneut ein Token erstellt werden. Andernfalls wird ein HTTP 401 Unauthorized Fehler zurückgeliefert.

Der Name des Header-Parameters für den Token sowie Username und Password für die BASIC-Authentifizierung werden wie beschrieben in der Bestätigungsemail einmalig zugesandt.

Zum besseren Verständnis folgt ein Codebeispiel in C#

Holen des Token:
string baseAddress = "https://DeineAppApi.appsolut.com/";
var username = "DeineAppUser";
var password = "DeineAppPWD";
using (var client = new HttpClient())
{
var authData = string.Format("{0}:{1}", username, password);
var authHeaderValue = Convert.ToBase64String(Encoding.UTF8.GetBytes(authData));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",   authHeaderValue);
client.BaseAddress = new Uri(baseAddress);
HttpResponseMessage response = await client.GetAsync("api/Appsolut/GetToken");
if (response.IsSuccessStatusCode)
{
KeyValuePair<string, IEnumerable<string>> result = response.Headers.Where(i => i.Key     == "DeineAppToken").FirstOrDefault();
return result.Value.FirstOrDefault();
}
}

Nutzen des Tokens beim Konsumieren einer API
string token = await GetToken("https://DeineAppApi.appsolut.com/");
using (var httpClient = new HttpClient())
{
string jsonStringOfUsers = JsonConvert.SerializeObject(new MwSt_DTO());
HttpContent content = new StringContent(jsonStringOfUsers, Encoding.UTF8,  "application/json");
content.Headers.Add("DeineAppToken", token);
httpClient.BaseAddress = new Uri(baseAddress);
httpClient.DefaultRequestHeaders.Add("DeineAppToken ", token);
var response = await httpClient.GetAsync("api/Firma/GetBy_Id/3");
response.EnsureSuccessStatusCode();
Task<string> responseBody = response.Content.ReadAsStringAsync();
var firma = JsonConvert.DeserializeObject<Firma>(responseBody.Result);
}

Dieses Codebeispiel veranschaulicht eine einfache Kommunikation inklusive dem Erstellen eines neuen Token.

Der 2. Grund der die Erstellung und Veröffentlichung von REST-APIs auslöst ist das Anhaken von Android oder UWP-App.

In diesem Fall werden die Zugangsdaten zu den APIs nicht per Email verschickt.

Da für die Kommunikation der App mit der datenhaltendenden Web-Lösung entsprechende Web-Schnittstellen benötigt werden, müssen die erforderlichen Schnittstellen automatisch erstellt und veröffentlich werden.

Diese APIs sind selbstverständlich ebenfalls über eine tokenbasierte „BASIC“- Authentifizierung geschützt.

Username, Password und Headername für die Übermittlung des Tokens werden automatisch erstellt und sind aber weder öffentlich zugänglich, noch werden diese Informationen in irgendeiner Art preisgegeben.