Tôi đang thực hiện một WebService RESTful sử dụng CherryPy 3 nhưng tôi gặp phải một vấn đề REST: Tôi muốn để có thể trả lời các yêu cầu như: /khách hàng/1/products/386 ý nghĩa tôi muốn tất cả các sản phẩm với ID 386 của khách hàng với ID 1.URL thân thiện cho một WebService với CherryPy
Vì vậy, tôi cố gắng để làm cho nó với MethodDispatcher của CherryPy như thế này:
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)
Nhưng khi tôi yêu cầu/khách hàng/1/products/386, thay vì chuyển hướng tôi đến ProductController.GET với mệnh đề đúng ters, nó chuyển hướng tôi đến UserController.GET với các tham số 1, "sản phẩm", 386.
Để được chuyển hướng đến ProductController.GET Tôi phải truy vấn/khách hàng/sản phẩm/386 không chính xác vì tôi nhớ ID người dùng tham số.
Tôi đã xem trên bản trình bày này: RESTful Web Applications with CherryPy rằng kiểu đường dẫn tôi muốn sử dụng có vẻ là lựa chọn tốt. Nhưng có cách nào dễ dàng để thực hiện nó với Cherry Py?
Tôi đã nghe về phương pháp _cp_dispatch của CherryPy 3 nhưng tôi không hiểu chính xác nó là gì và cách sử dụng nó. Nó có thay thế MethodDispatcher không?