2011-01-11 11 views
0

Hallo Ich versuche, die Server-Seite einer Anwendung mit REST-Architektur mit PHP zu bauen. später werde ich einen Client für Android machen diese Dienste zu verbrauchen.PHP REST Webservice: Sind diese URLs logisch oder physisch?

Ich weiß bereits, was eine RESTful-Anwendung ist.

aber immer noch etwas confuse:

wenn ich Informationen eines Benutzers abrufen möchten bekommen, die URL I www.domain.com/user/123 nach REST zugreifen soll. aber das heißt für jeden Benutzer in DB sollte ich eine .php machen ?? das klingt unlogisch. Oder es gibt so etwas wie Java, das eine logische URL verwendet, oder einfach die URL zu etwas wie www.domain.com/getusr.php?id=123 umschreiben?

behoben: ist URL neu schreiben die korrekte Möglichkeit, Anfrage URL von Clients für einen Webservice in PHP zu interpretieren?
zum Beispiel: wenn jemand Anfrage www.domain.com/user/123, ich www.domain.com/getusr.php?id=123

umschreiben sollte, oder vielleicht ist PHP nicht für Webservice?

dank

+0

Wie Links neu geschrieben werden, hängt vom verwendeten Webserver ab. Sagen Sie uns, welche Sie verwenden und jemand weist Sie wahrscheinlich auf die Dokumentation zum Umschreiben von URLs auf Ihrem Webserver hin. – Oswald

Antwort

1

Sie müssen die URL www.domain.com/getusr.php?id=123, auf diese Weise müssen Sie nur 1 PHP-Datei, alle Anfragen in Form von www.domain.com/user/123 gehen würde, zu einer einzigen getusr.php Datei neu zu schreiben. Sie können dies mit Apache mod_rewrite (es gibt Tonnen von Beispielen herum, so dass ich einen anderen).


bearbeiten

überprüfen this link, die ein paar gute Beispiele enthält.

Oder können Sie diesen Code unten verwenden (legen Sie sie in eine „.htaccess“ -Datei an der Wurzel Sie Web-Verzeichnis sind, wo getusr.php allso platziert werden soll)

RewriteEngine on 
RewriteRule ^user/([0-9]+)$ getusr.php?id=$1 
+0

@poelinca, aber Sie könnten einen Link zu einem dieser Beispiele veröffentlichen, es würde Ihre Antwort verbessern und denen helfen, die nicht wissen, worum es bei "Suche" geht. :-) – acm

+0

@andre matos: Leute, die nicht wissen, um was es bei der Suche geht, sollten in erster Linie keine Entwicklung machen, weil sie faul sind. Leute, die nicht wissen, um was für eine Suche es sich handelt, kommen immer zu dieser Seite, so dass sie meine aktualisierte Antwort nicht sehen. Ich bin hier, um zu helfen, nicht "noch ein anderer Google Suchbot" zu sein. –

+0

@andre matos Es gibt keinen Sinn in Beispielen, es sei denn, Sie machen eine wilde (oder erzogene) Vermutung auf dem Webserver, der verwendet wird. – Oswald

0

Ich mag die wie Drupal es macht. Drupal verwendet eine q Parameter für alle seine Routen:

http://myserver/drupal/?q=node/234

, die, wenn mod_rewrite aktiviert ist, wird

http://myserver/drupal/node/234

Auf diese Weise müssen Sie nur noch den Inhalt des $_GET['q'] analysieren.

Es ist sauberer als eine Reihe von separaten Rewrite-Regeln für jede Ihrer Routen.