2016-01-29 17 views
8

Sự khác nhau giữa MethodView và tài nguyên là gì?Flask MethodView vs Flask-Restful Resource

Nó thực hiện API bằng cách bình-yên tĩnh:

class API(Resource): 
    decorators = [...,] 

    def get(self): 
     # do something 
    def post(self): 
     # do something 
    def put(self): 
     # do something 
    def delete(self): 
     # do something 

Trên thực tế, nó có thể được thay thế bằng bình:

class API(MethodView): 
    decorators = [...,] 

    def get(self): 
     # do something 
    def post(self): 
     # do something 
    def put(self): 
     # do something 
    def delete(self): 
     # do something 

Tôi nghĩ Flask đã cung cấp đủ về việc thiết lập RESTful API. Tôi không thể tìm thấy bình yên tĩnh có thể làm nhiều thứ hơn bình vì chúng có phương pháp CRUD và trang trí trong lớp cơ chế giống nhau. Điều gì là đặc biệt về bình tĩnh-nghỉ ngơi?

Tôi đang đánh giá xem bình tĩnh có hiệu quả hay không. Xin vui lòng cho tôi biết, cảm ơn.

Trả lời

3

Tôi đã tự hỏi điều tương tự và theo tài nguyên bài đăng này được kế thừa từ Methodview (http://blog.miguelgrinberg.com/post/designing-a-restful-api-using-flask-restful). Bài viết mô tả giá trị gia tăng so với Flask đơn giản như "Flask-RESTful cung cấp một cách tốt hơn để xử lý điều này với lớp RequestParser. Lớp này hoạt động theo cách tương tự như argparse cho các đối số dòng lệnh." Và phần lớn công việc với API của bạn vẫn là điều cần làm với xác thực và bảo mật như tham số/kiểm tra dữ liệu.

Thx đến Miguel để xuất sắc trên blog. Tôi đang sử dụng bình yên tĩnh vì nó có vẻ khá chín chắn.

Nếu nhu cầu của bạn rất nhỏ, thì tôi nghĩ bạn có thể sử dụng phương pháp tiếp cận bình.

+7

Nếu bạn cân nhắc việc sử dụng bình yên cho RequestParser của nó, tôi khuyên bạn nên đọc các liên kết sau: http://flask-restful.readthedocs.io/en/0.3.5/reqparse.html và https://github.com/bình-yên/bình/nghỉ/335. Về cơ bản, trình phân tích cú pháp yêu cầu không được dùng nữa vì lợi ích của webargs. Đó là đề nghị (và may mắn bởi bình-restful bình) mà ngày nay, bạn cũng có thể sử dụng bình MethodView + bình + classful + marshmallow + webargs (bình-classful là một ngã ba của bình bỏ hoang-classy). –