Ich versuche, eine "Standard" Business-Website zu schreiben. Mit "Standard" meine ich, dass diese Site das übliche HTML5, CSS und Javascript für das Front-End, ein Back-End (zum Verarbeiten von Dingen) und MySQL für die Datenbank ausführt. Es ist eine einfache CRUD-Site: Das Front-End macht einfach ziemlich alles, was die Datenbank auf Lager hat. Das Backend schreibt in die Datenbank, was auch immer der Benutzer eingibt, und führt eine Verarbeitung durch. Genau wie die meisten Seiten da draußen.
Als ich meine Github-Repositorys erstellte, um mit dem Codieren zu beginnen, wurde mir klar, dass ich den Unterschied zwischen dem Front-End-Back-End und der API nicht verstehe . Eine andere Möglichkeit, meine Frage zu formulieren, ist: Woher kommt die API in diesem Bild?
Ich werde einige Details und dann Fragen auflisten, die ich habe - hoffentlich gibt dies euch eine bessere Vorstellung davon, was meine eigentliche Frage ist, weil ich so verwirrt bin, dass ich die spezifische Frage nicht kenne, die ich stellen soll.
Einige weitere Details:
- Ich möchte das Model-View-Controller-Muster ausprobieren. Ich weiß nicht, ob dies die Frage / Antwort ändert.
- Die API ist RESTful
- Ich möchte, dass mein Back-End meine eigene API verwendet, anstatt dass das Back-End betrügt und spezielle Abfragen aufruft. Ich denke, dieser Stil ist konsequenter.
Meine Fragen:
- Ruft das Front-End das Back-End auf, das die API aufruft? Oder ruft das Front-End einfach die API auf, anstatt das Back-End aufzurufen?
- Führt das Back-End nur eine API aus und die API gibt die Steuerung an das Back-End zurück (wobei das Back-End als ultimativer Controller fungiert und Aufgaben delegiert)?
Es werden ausführliche und ausführliche Antworten empfohlen, in denen die Rolle der API neben dem Front-End-Back-End erläutert wird. Wenn die Antwort vom Programmiermodell abhängt (andere Modelle als das Model-View-Controller-Muster), beschreiben Sie bitte diese anderen Denkweisen der API. Vielen Dank. Ich bin sehr verwirrt.
Skizzieren wir die Architektur einer "typischen" Website mit einem "Front-End" und einem "Back-End". Und da es sich um eine Website handelt, haben wir auch explizit einen "Kunden". (Da JavaScript in einem Browser keine Möglichkeit bietet, MySQL auf einem Server direkt aufzurufen.)
Zur Verdeutlichung verwenden wir folgende Begriffe:
Für ein richtig gestaltetes Programm verfügt jede dieser Komponenten über eine private API, um mit den anderen zu kommunizieren. Der "Front-End" -PHP-Code gibt keine willkürlichen SQL-
SELECT
Anweisungen direkt aus, sondern ruft gespeicherte Prozeduren, vorautorisiertes SQL oder sogar unterschiedliche PHP-Aufrufe für eine ganz andere Instanz von PHP auf, die auf dem Back-End-Server ausgeführt wird . Diese gespeicherten Prozeduren oder eindeutigen HTTP-Aufrufe sind selbst eine API.Die Definition ändert sich auch dann nicht, wenn wir eine gewisse Unreinheit in unserem Design berücksichtigen. Wenn Ihre
PHP
Datei eine SQL-Zeichenfolge schreibt und direkt an MySQL sendet, IST ES NOCH EINE API , wenn auch eine sehr ungewöhnliche, die Sie wahrscheinlich nicht wiederholen werden.Beachten Sie, dass es durchaus möglich ist, dass Ihr Front-End-PHP absolut synchron ist, ganz ohne AJAX-Voodoo. Wenn Sie dieselben externen PHP-Funktionen in dieser synchronen Datei aufrufen, können Sie davon ausgehen, dass sie dieselbe API wie die clientseitige Version verwenden, obwohl die Verwendung des Begriffs "API" hier möglicherweise keine wirkliche Klarheit bietet.
Eine API ist schließlich eine Anwendungsprogrammierschnittstelle und bezieht sich wirklich auf jeden Zeitpunkt, zu dem ein Programm außerhalb seines eigenen Prozesses aufruft. Wenn Sie ein Projekt schreiben, das sowohl ein Front-End als auch ein Back-End hat, seien es AJAX / PHP / MySQL wie oben oder MS Access / SQL Server, sollten Sie genau angeben, wie Sie sich gegenseitig anrufen. wenn auch aus keinem anderen Grund, als um zu wissen, wo Sie suchen müssen, wenn etwas kaputt geht.
(Und das Thema der öffentlichen API ist noch etwas ganz anderes. In unserem obigen Beispiel ist nur die im Client angezeigte URL eine "öffentliche API". Alles andere ist im Wesentlichen "privat". Wie in erwartet man nicht Code, der sich Ihrer Kontrolle entzieht, um Ihre interne API aufzurufen, und Sie lehnen diese Ergebnisse entweder sofort ab oder behalten sich das Recht vor, dies in Zukunft zu tun.
quelle
Eine API verarbeitet http-Anforderungen wie GET, POST, FETCH, DELETE ..., die abhängig von Ihrem Token-Zugriff zum Abrufen von Daten in einem bestimmten Format wie json, xml usw. verwendet werden können.
Diese "Daten" können in Ihrer eigenen Anwendung verwendet werden, um API (Application Programming Interface) zu erhalten. Hierbei handelt es sich um einen öffentlich zugänglichen Webdienst zum Sammeln von Daten, die für einige Benutzer interessant sein könnten.
Diese Daten können eine Reihe von Daten zurückgeben, die einen Fehler darstellen, oder Daten vom API-Server abrufen
API ist als Back-End gedacht und kann in jeder Front-End-Umgebung verwendet werden. Dies bedeutet, dass es in einer Web-, Android-, iOS- ... Anwendung verwendet werden kann, die https-Anforderungen verarbeiten kann
quelle