Pregunta

Estoy planeando una API para mi propio uso, en Python.Tal vez algún día voy a hacer es de libre acceso, pero ahora sólo estoy planeando utilizar en mi sitio de aficiones.En esta etapa, necesito algunos consejos sobre cómo configurar las direcciones Url, para los archivos que recibir peticiones GET y POST.

Supongamos que uno de mis archivos se llama function_A.py y se utiliza de esta manera:

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

Mi pregunta es, ¿cómo hace uno para configurar 'bastante' Url en una API, en el menos intensivo de los recursos camino?

Veo que la mayoría de las APIs de un típico formato de URL como http://www.example.com/api/read en lugar de http://www.example.com/api/read.py

Mis opciones son probablemente limitada a mod_rewrite v/s urls.py utilizando Django - o hay otra opción más simple?

Esto es para el backend/API y prefiero mantener elevados a un mínimo.Yo sólo quiero manejar 4 direcciones Url en la que esta de moda, y no quiero tener un regex se producen cada vez que la URL se llama.

¿Fue útil?

Solución

El MYYN es correcta. El uso de un marco como Ruby on Rails o Django es la forma más fácil de crear una API REST.

Sin embargo, si usted no desea utilizar un marco, se puede hacer lo mismo usando mod_rewrite en Apache. De hecho, esto es precisamente lo que la mayoría de los marcos / aplicaciones que se ejecutan en Apache hacen.

Por ejemplo, Wordpress utiliza un archivo .htaccess como esto:

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

Esto dirige todas las peticiones a index.php, donde pueden ser analizados y procesados.

Marcos como RoR o Django hacer prácticamente lo mismo:. Todas las peticiones son redirigidas a un único archivo / clase / función

Otros consejos

Mi suposición es que las API de servicios web con URLs amigables (aka descanso) se construyen a través de algún tipo de webframework (Werkzeug, web.py, Django, torres de alta tensión, cherrypy, wsgi llano, ...).

El módulo se está refiriendo a se encarga de coincidencia de URL / manipulación para determinar la ruta correcta para una petición.

A partir de la documentación de este último:

  

Rutas aborda una interesante problema que se presente con frecuencia en el desarrollo web, ¿cómo mapear URLs a las acciones de su aplicación? Es decir, ¿cómo se dice que esto se debe acceder como /blog/2008/01/08 y /login debería hacer eso? Muchos marcos web tienen un sistema de despacho fijo; por ejemplo, medios /A/B/C leer el archivo C en B directorio o al método de llamada C de B clase en A.B módulo. Estos funcionan bien hasta que deberás volver a código y darse cuenta de que mover un método cambia su dirección URL pública e invalida marcadores de los usuarios. Del mismo modo, si usted desea reorganizar sus URL y hacer una sección en una subsección, usted tiene que cambiar su código de lógica probado cuidadosamente.

Sí, .htaccess es la forma en que se pueden asignar a un bonito y externa, dirección URL en el servidor Apache en cierta URL sucia que su plataforma de servicios acepta.

Algunas plataformas complejos no tienen medios de producción de URLs más agradables también.

No hay magia.Sólo así se está utilizando un servidor web que fue diseñado con el archivo Url basada en mente.

La mayoría de los sitios no se moleste con el archivo Url basadas en más y en lugar de hacer su propio despacho.Esto es lo que Django no, esto es lo que ASP.NET MVC hace.

Lo que usted necesita para la búsqueda de mod_rewrite para Apache.Esto le permitirá mapa no basado en archivo de direcciones Url a tus archivos de Python.

Como alternativa, busque en el uso de una web de Python marco que ya lo hace. Web.py y Django son bonitos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top