Eigene API - python, php? oder doch JavaScript?
Simius
- programmiertechnik
Hi,
ich möchte es ermöglichen, dass Leute für meine Seite eigene Module bzw. Applications wie für Facebook schreiben können, die Lesezugriff auf meine Datenbank haben. Natürlich mit einem weit geringerem Funktionsumfang als bei Facebook.
Die Seite werde ich wahrscheinlich in Python schreiben. Nun stellt sich für mich die Frage, wie ich anderen auch eine Schnittstelle in PHP zur Verfügung stelle. Da die meisten eher PHP können als Python, wäre es meiner Meinung nach sehr sinnvoll auch eine API in PHP anzubieten. (API klingt hier zu mächtig ;).
Ich könnte auch die Seite in PHP schreiben, doch habe ich irgendwie Bedenken wegen der Geschwindigkeit. Ihr könnt mich gerne für das Gegenteil überzeugen. Und dann bliebe weiter die Frage, wie ich eine API in anderen Sprachen anbiete.
Eine dritte Möglichkeit wäre natürlich, dass ich ein Bündel JavaScriptfunktionen anbiete, die per HTTPRequest die Daten holen, doch vermehrt das nicht den Traffic? Und wie sieht es dort mit der Sicherheit aus?
Ich bin für alle Anregungen offen
und Danke im Voraus.
PS: Ich weiß, dass meine Idee sich für einen kleinen Programmierer ziemlich umfangreich anhört. Die "API" soll wirklich nur einen sehr sehr klein ausfallen. Also bitte nicht zu viele Post deswegen ;)
Moin!
ich möchte es ermöglichen, dass Leute für meine Seite eigene Module bzw. Applications wie für Facebook schreiben können, die Lesezugriff auf meine Datenbank haben. Natürlich mit einem weit geringerem Funktionsumfang als bei Facebook.
Wo soll der Code denn ausgeführt werden? Auf deinem Server? Davon ist deutlichst abzuraten, egal welche Sprache.
Und was konkret soll denn damit erreicht werden - beispielsweise?
Ich könnte auch die Seite in PHP schreiben, doch habe ich irgendwie Bedenken wegen der Geschwindigkeit. Ihr könnt mich gerne für das Gegenteil überzeugen. Und dann bliebe weiter die Frage, wie ich eine API in anderen Sprachen anbiete.
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.
Eine dritte Möglichkeit wäre natürlich, dass ich ein Bündel JavaScriptfunktionen anbiete, die per HTTPRequest die Daten holen, doch vermehrt das nicht den Traffic? Und wie sieht es dort mit der Sicherheit aus?
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.
- Sven Rautenberg
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. 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.
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.
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.
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.
Ich versuche mir vor allem klar zu machen, wie Facebooks System funktioniert. Wenn jemand Links zu den Thema hat, bin ich sher dankbar.
cu
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
Dieses Vorhaben führt zu 100% in die Katastrophe. Nicht mal Facebook macht das!
»»
Dieser Ansicht bin ich auch. Nur konnte ich mir nicht vorstellen, wie es funktionieren sollte.
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
»»
Ich war auch schon auf der Facebook Seite. Keine Ahnung, wie das übersehen konnte ;). Aber auf jeden Fall vielen Dank!
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.
Da stimme ich dir auch zu. Ich habe mich deshalb schon gefragt, wie es zB bei OpenSocial funktionieren wird. Aber das werde ich sleber nachlesen.
Vielen Dank nochmal.