Flask-RESTful 为每个 HTTP 方法自定义路由
Flask-RESTful custom routes for each HTTP method
我有简单的资源 class,它定义了一些 API 方法:
class RoomAPI(Resource):
def get(self):
# some code
def post(self):
# some code
def put(self):
# some code
然后我这样定义我的路线:
api.add_resource(RoomAPI,'/api/rooms/')
所以,我的问题是:如何只使用一个资源为每个 HTTP 方法创建不同的路由 class?
我想要这样API:
GET /api/rooms/get/
POST /api/rooms/create/
PUT /api/rooms/update/
简短的回答是,你不应该。那根本不是 RESTful。
不过,如果你真的想,我想你可以这样做:
api.add_resource(RoomAPI,'/api/rooms/get', methods=['GET'])
api.add_resource(RoomAPI,'/api/rooms/create', methods=['PUT'])
api.add_resource(RoomAPI,'/api/rooms/update', methods=['POST'])
由于未使用的 **kwargs
来自 add_resource 被传递给 add_url_rule()
。
我有简单的资源 class,它定义了一些 API 方法:
class RoomAPI(Resource):
def get(self):
# some code
def post(self):
# some code
def put(self):
# some code
然后我这样定义我的路线:
api.add_resource(RoomAPI,'/api/rooms/')
所以,我的问题是:如何只使用一个资源为每个 HTTP 方法创建不同的路由 class?
我想要这样API:
GET /api/rooms/get/
POST /api/rooms/create/
PUT /api/rooms/update/
简短的回答是,你不应该。那根本不是 RESTful。
不过,如果你真的想,我想你可以这样做:
api.add_resource(RoomAPI,'/api/rooms/get', methods=['GET'])
api.add_resource(RoomAPI,'/api/rooms/create', methods=['PUT'])
api.add_resource(RoomAPI,'/api/rooms/update', methods=['POST'])
由于未使用的 **kwargs
来自 add_resource 被传递给 add_url_rule()
。