Così si vuole trasformare/GetOrders? account = X & type = Y in qualcosa come/orders/account/type usando Cherrypy.
Vorrei provare l'approccio utilizzato in http://cherrypy.readthedocs.org/en/latest/tutorial/REST.html come menzionato da @Tomasz Blachowicz, con alcune modifiche.
Ricordate che è possibile gestire qualcosa come/ordine/account/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, '/')
Quindi, se si prende l'esempio dato in http://cherrypy.readthedocs.org/en/latest/tutorial/REST.html, è possibile modificarlo per gestire questo tipo di 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)
Perché si vuole impostare gli ordini che utilizzano tale metodo put non lo so, ma lo fa fare un altro esempio di come fare PUT metodi. Tutto quello che devi fare è sostituire il metodo usato da una richiesta con PUT e userà il metodo PUT() degli ordini e userà un GET regolare sugli ordini e userà il metodo GET(). Poiché un metodo POST() non è definito, con questo esempio non è possibile utilizzare POST. Se provi POST o DELETE otterrai "405 Method Not Allowed".
Mi piace questo approccio perché è facile vedere cosa sta succedendo e, credo, risponda alla tua domanda.
Collegamenti per non funziona :( –