CherryPy 3 を使用して RESTful WebService を作成していますが、問題が発生しました: /customers/1/products/386のような要求に応答できるようにしたいということは、ID 1 のクライアントの ID 386 を持つすべての製品が必要であることを意味します。
だから私はこのようにCherryPyのMethodDispatcherでそれを作ろうとします:
class UserController(object):
exposed = True
def __init__(self):
self.product = ProductController()
@log_io
def GET(self, *args):
return "GET Users :" + str(args)
class ProductController(object):
exposed = True
@log_io
def GET(self, *args):
return "GET Product :" + str(args)
しかし、/customers/1/products/386 を要求すると、適切なパラメーターを使用して ProductController.GET にリダイレクトされるのではなく、パラメーター 1、「products」、386 を使用して UserController.GET にリダイレクトされます。
ProductController.GET にリダイレクトするには、/customers/products/386 を照会する必要がありますが、これはユーザー ID パラメーターが欠落しているため、正しくありません。
このプレゼンテーションで見た : RESTful Web Applications with CherryPyは、使用したいパス スタイルが適切な選択のようです。しかし、Cherry Py で簡単に実装する方法はありますか?
CherryPy 3 の _cp_dispatch メソッドについて聞いたことがありますが、それが何であり、どのように使用するのか正確にはわかりません。MethodDispatcher を置き換えますか?