Rest-Api in Xamarin?

1 Antwort

Eine REST-API stellt eine Schnittstelle dar, über die ein Client Daten (Ressourcen) von einem Server anfordern kann. Die Kommunikation findet zustandslos statt. Das heißt, der Client sendet die Informationen, die der Server wiederum benötigt, um eine Antwort geben zu können. Der Server trägt nicht dynamisch neue Informationen bei, die das Ergebnis je Anfrage beeinflussen könnten. Stattdessen liefert eine Anfrage mit gleichen Informationen immer dasselbe Ergebnis.

Plumpes Beispiel:

Request:

http://my-rest-api.com/GetSum?number1=2&number2=3

API Controller:

class ApiController : Controller
{
  ActionResult GetSum(int number1, int number2)
  {
    Calculator calculator = new Calculator();
    int sum = calculator.GetSum(number1, number2);
  
    return Content(sum);
  }
}

Calculator:

class Calculator
{
  public int GetSum(int number1, int number2)
  {
    return number1 + number2;
  }
}

Response:

5

Um hierbei die Performance zu verbessern, könnte der REST Service einzelne Requests auch noch cachen. Wenn also ein zweiter Client den gleichen Request verschickt, wird erst geschaut, ob es diese Anfrage schon einmal gab. Wenn ja, wird ihr gespeichertes Ergebnis zurückgegeben. Eine Neuberechnung ist nicht notwendig.

Das Format, wie die Daten zurückkommen, sollte bei einer REST API nicht starr sein. Es ist günstig für den Client, wenn er verschiedene Formate anfordern kann: Vielleicht die Daten in einem JSON-Objekt gepresst oder lieber doch in XML.

Des Weiteren treten im Zusammenhang mit REST APIs im Web auch noch unterschiedliche mögliche Operationen in den Vordergrund, mit denen man auf die adressierten Ressourcen agieren kann. Mit PUT und DELETE könnte man bspw. Ressourcen anlegen oder löschen (wenn es die API schlussendlich auch explizit unterstützt). Weitere Operationen im Web sind GET und POST.

Weitere Informationen zum Design (ich war in meiner Erklärung kurz und grob) und wie man REST implementiert, findest du in zahlreichen Internetartikeln (wie diesem), Büchern oder Videos (auf Udemy finde ich eine Menge Videos zum Thema REST API).

wie kann ich es mit meiner  Xamarin-App verknüpfen?

An erster Stelle müsste geklärt werden, welche Rolle die App einnehmen soll. Höchstwahrscheinlich die des Clients.

Es reicht aus, den Request (via WebRequest-Klasse und Ressource-URL) an die REST API zu schicken und den Response zu lesen.

brauche ich dafür ein  Server?

Für die REST API auf jeden Fall. Es sei denn, es ist eine bereits bestehende API, die von jemanden anders zur Verfügung gestellt wird.

Im ersteren Fall würde ich empfehlen, die API über einen Webserver laufen zu lassen. Es ist einfacher für dich, für die durchgehende Erreichbarkeit sorgt jemand anders (ein Webhoster deiner Wahl).

Wie kann ich es mit meinem  DataBase verknüpfen?

Im Grunde ist es (gesetzt meines obigen Ratschlages) einfach nur eine Webanwendung, die sich ganz normal mit einer Webdatenbank verbindet und Daten anfordert / manipuliert, so wie es der Client anfordert.

Womit du die Webanwendung entwickelst - ob mit C# und ASP.NET, Ruby, PHP, o.ä. ist übrigens egal.

Blackout001 
Fragesteller
 08.12.2019, 05:45

Das ist verdammt gut erklärt .. ich danke dir .. und ich danke dir noch ein mal weil du Zeit genommen hast, um so eine detaillierte Antwort zu schreiben .. bester Mann ..

0