Domanda

Sto progettando una API per il mio uso personale, in Python.Forse un giorno farò liberamente accessibile, ma ora sto solo intenzione di usarlo sul mio hobby sito.In questa fase ho bisogno di alcuni consigli su come impostare gli Url, per i file che ricevono entrambe le richieste GET e POST.

Supponiamo che uno dei miei file è chiamato function_A.py e usata in questo modo:

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

La mia domanda è, come si fa a impostare la 'bella' Url in un'API, in meno di risorse, a modo?

Vedo che la maggior parte delle Api sono un tipico formato di URL come http://www.example.com/api/read invece di http://www.example.com/api/read.py

Le mie opzioni sono probabilmente limitati a mod_rewrite v/s urls.py usando Django - o c'è un'altra opzione più semplice?

Questo è per il backend/API e preferisco mantenere i costi di gestione al minimo.Voglio solo manico 4 gli Url in questo modo, e non si vuole avere una regex si verifica ogni volta che l'URL è chiamato.

È stato utile?

Soluzione

Il MYYN è corretta. Utilizzando un framework come Ruby on Rails o Django è il modo più semplice per creare un'API RESTful.

Tuttavia, se non si desidera utilizzare un framework, si può fare la stessa cosa usando mod_rewrite in Apache. In realtà, questo è esattamente ciò che la maggior parte quadri / applicazioni in esecuzione su Apache fanno.

Per esempio, Wordpress utilizza un file .htaccess in questo modo:

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

Questa indirizza tutte le richieste a index.php, dove possono essere analizzati ed elaborati.

Framework come RoR o Django fare praticamente la stessa cosa:. Tutte le richieste vengono reindirizzate a un singolo file / classe / funzione

Altri suggerimenti

La mia ipotesi è che le Api del servizio web con Url carini (aka RESTO) sono realizzati attraverso un qualche tipo di webframework (Werkzeug, web.py, django, piloni, cherrypy, pianura wsgi, ...).

Il modulo si fa riferimento a cura url corrispondente a/gestione per determinare il corretto percorso di richiesta.

Dalla documentazione di quest'ultimo:

Percorsi affronta un problema interessante, che si presenta di frequente lo sviluppo di applicazioni web, come si fa a mappare le Url con le azioni dell'applicazione?Che è, come si fa a dire che questo deve essere letta come /blog/2008/01/08, e /login dovrebbe farlo?Molti framework per il web un posto fisso di spedizione di sistema;ad esempio, /A/B/C significa leggere il file C nella directory B, o chiamare il metodo C di classe B nel modulo A.B.Queste funzionano bene fino a quando è necessario effettuare il refactoring del codice e rendersi conto che lo spostamento di un metodo cambia l'URL pubblico e invalida utenti preferiti.Allo stesso modo, se si desidera riorganizzare il vostro Url e fare una sezione in una sottosezione, è necessario modificare il vostro accuratamente testato il codice di logica.

Sì, .htaccess è il modo in cui è possibile mappare da una bella, esterna, URL in Apache Server per alcuni URL sporca che la piattaforma di servizio accetta.

Alcune piattaforme complesse fanno avere mezzi per produrre gli URL più bello pure.

Non c'è nessuna magia. È solo così capita di essere utilizzando un server web che è stato progettato con gli URL basati su file in mente.

La maggior parte dei siti non si preoccupano con URL basati su file più e invece fanno la loro spedizione. Questo è ciò che fa Django, questo è ciò che fa ASP.NET MVC.

Quello che vi serve per ricerca è mod_rewrite per Apache. Essa vi permetterà di mappare gli URL non basati su file ai file Python.

In alternativa, guardare utilizzando un framework web Python che già fa questo. Web.py e Django sono piacevoli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top