Así que desea transformar/getOrders? cuenta = X & tipo = Y en algo como/orders/account/type usando Cherrypy.
Me gustaría probar el enfoque utilizado en http://cherrypy.readthedocs.org/en/latest/tutorial/REST.html como lo menciona @Tomasz Blachowicz, con algunas modificaciones.
Recuerde que puede manejar algo como/pedido/cuenta/tipo con
@cherrypy.expose
def order(account=None, type=None):
print account, type
class Root(object):
pass
root = Root()
root.orders = orders
cherrypy.quickstart(root, '/')
lo tanto, si se toma el ejemplo dado en http://cherrypy.readthedocs.org/en/latest/tutorial/REST.html, puede modificarlo para manejar ese tipo de URL.
class Orders(object):
exposed = True
def __init__(self):
pass
def GET(self, account=None, type=None):
#return the order list for this account type
return getOrders(account, type)
def PUT(self, account=None, type=None, orders=None):
#Set the orders associated with account or something
setOrders(account, type, orders)
class Root(object):
pass
root = Root()
root.orders = Orders()
conf = {
'global': {
'server.socket_host': '0.0.0.0',
'server.socket_port': 8000,
},
'/': {
'request.dispatch': cherrypy.dispatch.MethodDispatcher(),
},
}
cherrypy.quickstart(root, '/', conf)
por las que se desee establecer órdenes que utilizan ese método put No sé, pero nos da otro ejemplo de cómo no poner métodos. Todo lo que tienes que hacer es reemplazar el método utilizado por una solicitud con PUT y usará el método PUT() de Órdenes y usar un GET regular en Órdenes y usará el método GET(). Como el método POST() no está definido, POST no se puede usar con este ejemplo. Si prueba POST o ELIMINAR obtendrá "405 Method Not Allowed".
Me gusta este enfoque porque es fácil ver lo que está pasando y, creo, responde a su pregunta.
Enlaces a no trabajar :( –