每个 HTTP 方法的 Flask-RESTful 自定义路由

asn*_*zin 1 python rest flask flask-restful

我有一个简单的 Resource 类,它定义了一些 API 方法:

class RoomAPI(Resource):
    def get(self):
        # some code

    def post(self):
        # some code

    def put(self):
        # some code
Run Code Online (Sandbox Code Playgroud)

然后我像这样定义我的路线:

api.add_resource(RoomAPI,'/api/rooms/')
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:如何仅使用一个 Resource 类为每个 HTTP 方法创建不同的路由?

我想获得这样的 API:

GET /api/rooms/get/
POST /api/rooms/create/
PUT /api/rooms/update/
Run Code Online (Sandbox Code Playgroud)

Nat*_*ver 5

简短的回答是,你不应该。这根本不是 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'])
Run Code Online (Sandbox Code Playgroud)

由于未使用的**kwargsfrom add_resource 被传递到 add_url_rule().