Hallo, ich habe eine Verständnisfrage. SQL Anweisungen vs. API: Hinter jeder API Anfrage steht doch auch ein SQL Befehl, oder? (Link nur für registrierte Nutzer sichtbar.) könnte man doch auch über eine SELECT-Datenbank Anfrage machen. Wenn ich intern über ein kleines PHP-Script Datenbankabfragen mache, oder auch in der DB Daten ändern möchte, ist es doch letztlich egal, ob ich das über die API-Schnittstelle mache oder über SQL Anweisungen, oder? Beide Möglichkeiten machen doch dasselbe, senden denselben SQL Befehl. Gruß
Im Grunde denke ich, ja, hinter jeder API-Anfrage steht ein SQL-Befehl. Fast. Hinter manchen API-Anfragen stehen aber auch mehrere SQL Befehle, denke ich, um damit mehr Informationen zusammen zu sammeln als man mit einem einzelnen SQL-Befehl holt. Und wenn man nicht Informationen holen sondern senden will, löst die API ja noch mehr aus als nur ein einzener SQL-Befehl vermag. Und: Die Datenbankstruktur kann sich ja jederzeit mit jedem Update ändern, so dass die SQL-Befehle nicht mehr funktionieren. Die API wird aber immer (hoffentlich) an Datenbankänderungen angepasst, funktioniert also verlässlich.
Eigene DB Abfragen sollte man möglichst vermeiden. Die API filtert und validiert auch teilweise Daten. Beispiel: Ich musste einen Wert anpassen als ich den ganzen Shop im Testsystem über die API neu befüllt habe, weil zu viele Anfragen waren. Also auch Sicherheit. Dein PHP Script könnte evtl. ja jemand ausnutzen und sich so DB zugriff verschaffen. über die API schwerer denke ich mal. Gambio DEV Seite hat ne API Dokumentation
Guten Morgen zusammen, Dennis hat das schon sehr gut erklärt. Es erleichtert einfach den Umgang mit Daten und ermöglicht einen Datenaustausch ohne die exakten Zusammenhänge der einzelnen Datenbanktabellen und Datenfelder zu kennen. Und bei Änderungen der Datenbankstruktur funktioniert der API-Zugriff (im Optimalfall) unverändert. Aber das ist alles nur ganz grob angerissen. Grüße Walter
Über die Offizielle API werden nicht nur einfach ein oder mehrere SQL Befehle ausgeführt sondern auch noch andere dinge wie zb: wenn man die Versand Sendungsnummer bei einer Bestellung über die offizielle API hinterlegt wird diese auch gleichzeitig an Paypal übertragen. Hinterlegt man stattdessen die Sendungsnummer einfach nur direkt in die Datenbank wird nichts an Paypal übertragen. Dessen muss man sich bewusst sein.
Auch Danke Euch Dreien. Mir ging es nur ums Verständnis. Ist quasi wie eine Methode einer Klasse, eine "Blackbox". Beim Verwendung der API werden letztlich im Hintergrund SQL Befehle ausgeführt, und natürlich noch PHP Code. Wäre mal schön, wenn man sich mal den Programmcode anschauen könnte. Einfach mal zu schauen, wie das programmiert wurde, zum Lernen.
Zum lernen: Es ist ja alles da im Shop. Die Datei die die Befehle Route ist die api.php im Hauptverzeichnis. Die Controller dafür sind (zumindest für die v2) im Verzeichnis GXMainComponents/Controllers/Api/v2/. Wenn Du also wissen möchtest, was der "products" Aufruf der API so macht, siehst Du Dir die Datei GXMainComponents/Controllers/Api/v2/ProductsApiV2Controller.inc.php an. Hinweis an @Till (Gambio): Wenn man derzeit unter https://developers.gambio.de/ den REST API v2 Button klickt, kommt ne Fehlermeldung, weil https://developers.gambio.de/docs/4.8.0.1/rest verlinkt ist aber nicht existiert, es existiert immer noch https://developers.gambio.de/docs/4.8.0.0/rest Dasselbe mit v3: https://developers.gambio.de/docs/4.8.0.1/rest-v3 gibts nicht, aber https://developers.gambio.de/docs/4.8.0.0/rest-v3 gibts.