Python Flask endpoint—处理请求中的数据还是端点本身?

Python Flask endpoint—处理请求中的数据还是端点本身?,python,api,rest,flask,flask-restful,Python,Api,Rest,Flask,Flask Restful,我目前正在开发一个FlaskAPI,并且认为我对如何实现我的端点有一个误解。目前,我处理请求的方式如下:我有一个端点,然后处理请求传递的数据 @api.route("/deleteitem") class DeleteItem(Resource): def delete(self): item = request.get_json()["item"] items = [x.get("item")

我目前正在开发一个FlaskAPI,并且认为我对如何实现我的端点有一个误解。目前,我处理请求的方式如下:我有一个端点,然后处理请求传递的数据

@api.route("/deleteitem")
class DeleteItem(Resource):
    def delete(self):
        item = request.get_json()["item"]
        items = [x.get("item") for x in store]
        if item in items:
            index = items.index(item)
            store.pop(index)
            return {"message": "item deleted"}, 200
        return {"message": "item not found"}, 404
在几乎每一个教程中,处理方式都有所不同:它不是通过请求体传递数据,而是通过端点直接完成,如下所示:

@api.route("/deleteitem/<string:item>")
class DeleteItem(Resource):
    def delete(self, item):
        items = [x.get("item") for x in store]
        if item in items:
            index = items.index(item)
            store.pop(index)
            return {"message": "item deleted"}, 200
        return {"message": "item not found"}, 404
@api.route(“/deleteitem/”)
类删除项(资源):
def删除(自我,项目):
items=[x.get(“item”)表示存储中的x]
如果项目中有项目:
索引=项目。索引(项目)
store.pop(索引)
返回{“消息”:“项目已删除”},200
返回{“消息”:“未找到项”},404

我的问题是:我是做错了还是这只是一个风格问题?这两种方法似乎都有效,但老实说,我的API非常简单,但我不想嵌入糟糕的编码风格。什么更可取?为什么?

我不认为你最初的尝试是错误的,但第二个更可取。这可能与隐式与显式有关。在第二个示例中,很明显您将删除1个项目,并且从url中您已经可以知道是哪一个。如果这是“隐藏”在身体,它可能是多个项目。 同样的逻辑也适用于GET请求。我们正在检索1个或多个项目吗?这也是为什么经常建议使用复数(所以不是/item而是/items),然后可以缩小范围

似乎大多数例子都同意这一点,包括中的文章以及