Frage

Ich Plane eine API für meinen persönlichen Gebrauch, die in Python.Vielleicht eines Tages werde ich frei verfügbar sein, aber jetzt bin ich nur Planung zu verwenden es auf meiner hobby-site.In diesem Stadium ich brauche einige Ratschläge, wie zu set up die URLs für Dateien, die empfangen-sowohl GET und POST-Anforderungen.

Angenommen, einer meiner Dateien namens function_A.py und verwendet auf diese Weise:

www.example.com/api/function_A.py?a=something&k=other+thing

Meine Frage ist, wie stellt man das set-up " pretty URLs in eine API, die am wenigsten ressourcenintensive Weg?

Ich sehe die meisten APIs eine typische URL-format wie http://www.example.com/api/read statt http://www.example.com/api/read.py

Meine Optionen sind wahrscheinlich begrenzt mod_rewrite v/s urls.py mit Django - oder gibt es eine andere einfachere Möglichkeit?

Dies ist für die backend/API und ich würde lieber halten overhead auf ein minimum.Ich will nur, um Griff 4-URLs in dieser Mode, und wollen nicht zu haben, eine regex immer dann auftreten, wenn die URL aufgerufen wird.

War es hilfreich?

Lösung

Die MYYN ist richtig. Mit einem Rahmen wie Ruby on Rails oder Django ist der einfachste Weg, um eine RESTful API zu erstellen.

Wenn Sie jedoch einen Rahmen nicht verwenden möchten, können Sie die gleiche Sache in Apache mit mod_rewrite tun. In der Tat ist dies genau das, was die meisten Frameworks / Anwendungen, die auf Apache tun.

Zum Beispiel Wordpress verwendet eine .htaccess-Datei wie folgt aus:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Dies leitet alle Anfragen an index.php, wo sie analysiert und verarbeitet werden kann.

Frameworks wie RoR oder Django tun praktisch das Gleiche:. Alle Anfragen weitergeleitet werden in einer einzigen Datei / Klasse / Funktion

Andere Tipps

Meine Vermutung ist, dass web-service-APIs mit hübschen URLs (auch bekannt als REST) sind gebaut über eine Art der webframework (Werkzeug, web.py django, pylons, cherrypy, plain wsgi, ...).

Das Modul, das Sie beziehen, kümmert sich um url-matching/Behandlung zu bestimmen, die richtige route für eine Anfrage.

Aus den Unterlagen, die der letzteren:

Routen befasst sich ein Interessantes problem, der kommt Häufig in web-Entwicklung, wie Sie anzeigen-URLs für Ihre Anwendung die Aktionen?Das ist, wie Sie sagen, dass das zugegriffen werden soll, wie /blog/2008/01/08, und /login sollte das?Viele web-frameworks haben eine Feste dispatching system;z.B., /A/B/C Mittel Datei Lesen C im Verzeichnis B, oder rufen Sie die Methode C Klasse B im Modul A.B.Diese Arbeit feine, bis Sie umgestalten von code und erkennen, dass das verschieben einer Methode ändert die öffentliche URL und ungültig Benutzer Lesezeichen.Ebenso, wenn Sie wollen zu organisieren Sie Ihre URLs, und stellen Sie einen Abschnitt in einem Unterabschnitt, Sie haben zu ändern Ihre sorgfältig geprüft Logik-code.

Ja, .htaccess ist die Art und Weise, dass Sie von einer hübschen, extern, URL in Apache Server zu einem gewissen schmuddelig URL zuordnen können, dass Ihre Service-Plattform akzeptiert.

Einige komplexe Plattformen haben mittels schönere URLs als auch produzieren.

Es gibt keine Magie. Sie passieren einfach so einen Web-Server zu verwenden, der mit dateibasierten URLs konzipiert wurde.

Die meisten Websites nicht die Mühe mit dateibasierten URLs mehr und stattdessen ihren eigenen Versand tun. Dies ist, was Django tut, das ist, was ASP.NET MVC tut.

Was Sie brauchen, um Lookup ist mod_rewrite für Apache. Es ermöglicht Ihnen, nicht dateibasierte URLs in Ihre Python-Dateien abzubilden.

Alternativ Blick auf einen Python-Web-Framework verwenden, die bereits dies tut. Web.py und

scroll top