Sven Rautenberg: Eigene API - python, php? oder doch JavaScript?

Beitrag lesen

Moin!

Wo soll der Code denn ausgeführt werden? Auf deinem Server? Davon ist deutlichst abzuraten, egal welche Sprache.

Der Code müsste auf dem Server ausführbar sein.

Dieses Vorhaben führt zu 100% in die Katastrophe. Nicht mal Facebook macht das!

Natürlich muss er dann in irgendeiner Weise kontrolliert werden. Soweit ich es gesehen habe, benutzt man für Facebook Applications auch PHP. Leider konnte ich bisher keine Beschreibung ihres Systems finden.

Komisch, ich hab' nur fünf Minuten gebraucht, um auf der Developer-Seite von Facebook zu lesen, wie das System im Prinzip funktioniert. http://developers.facebook.com/step_by_step.php

Du bindest auf deinem eigenen Webspace eine Bibliothek ein, die zum Facebook-Server verbindet und dir diverse Datenübertragungen ermöglicht. Zuvor mußt du dich aber bei Facebook mit dieser Applikation registriert haben, und diese Registrierungsdaten müssen bei der Verbindungsaufnahme natürlich vorgezeigt werden.

Die Einbindung der Applikation geschieht dann wohl mutmaßlich so, dass der Facebook-Server die URL auf deinem Server mit passenden Parametern aufruft. Dadurch wird das Skript gestartet, welches wiederum mit dem Facebook-Server Kontakt aufnimmt und Datenaustausch betreibt. Facebook kann dabei natürlich perfekt kontrollieren, welche Daten rausgerückt werden, und welche nicht, weil sowohl der ausgehende Request als auch die zurückkommenden Datenanfragen bekannt sind.

Dem auf der Facebook-Seite surfenden User wird dann das von deinem Server zurückgegebene Ergebnis nach einem Sicherheitscheck in die HTML-Seite eingebunden und stellt insgesamt dann die Applikation dar.

Und was konkret soll denn damit erreicht werden - beispielsweise?
Ich möchte die Möglichkeit bieten die Webseite quasi zu erweitern. Dazu möchte ich beschränkten Zugriff auf meine Datenbank bieten.

Wie du an meiner Darstellung der komplexen Verwobenheit der Vorgehensweise bei Facebook siehst, ist so ein Vorhaben alles andere als einfach.

Sowohl PHP als auch Python sind Skriptsprachen, und von der Geschwindigkeit her tun die sich nichts. Diese Mail http://mail.python.org/pipermail/python-list/2004-December/298882.html von 2004 sagt sogar, dass Python zumindest damals langsamer war, als PHP - außer in speziellen Anwendungsfällen, wo es seine internen Vorteile voll ausspielen könnte.

Danke für den Link. Ich glaube, dass es sich bei der Frage, was besser sei, auch um eine Glaubensfrage handelt. Die Diskussion würde sich aber weiter von meiner Frage entfernen, wie ich am besten versch. APIs anbiete.

Facebook hat in dieser Frage absolut kein Problem: Die kommunizieren nur mit URLs - und stellen als Anschubhilfe eine Bibliothek für PHP zur Verfügung, die man aber genausogut auch in Python, Perl, C++ oder ASP.NET implementieren könnte.

Wenn man nicht weiß, was du da wie über die Leitung schicken willst, kann man logischerweise den Traffic nicht abschätzen. Und wenn du nicht willst, dass man deine gesamte Datenbank auslesen kann, mußt du logischerweise den Zugriff begrenzen auf nur die Daten, die du veröffentlicht sehen willst.

Den Zugriff muss ich so oder so begrenzen. Ich frage mich nur, was schneller geht: Eine dynamisch generierte Seite übermitteln oder einen großen Haufen JavaScriptfunktionen zu schicken, die einen Teil der Site auf der Clientseite generieren.

Die Facebook-Methode verursacht mindestens genausoviel Traffic auf dem externen Server, wie jede Art von Javascript-Erweiterung.

Aber auch die Möglichkeit, auf deiner Website fremdes Javascript einbindbar zu machen, bietet üble Angriffsflächen, da man mit Javascript ja ebenfalls sehr prima Daten stehlen kann, etc.

- Sven Rautenberg

--
"Love your nation - respect the others."