尝试从 Postman POST - 在 Flask REST API 中出现 405 错误

时间:2021-04-06 18:24:12

标签: python json flask postman api-design

尝试使用 Postman 测试并查看我正在构建的 API 的 post 方法是否有效。我不断收到 405 错误,提示我发布功能甚至不可用。但这是一个非常简单的类,所以我看不出有什么问题。

from flask.views import MethodView
from flask import jsonify, request, abort

class BookAPI(MethodView):

    books = [
        {"id":1, "title":"Moby Dick"},
        {"id":2, "title":"Grapes of Wrath"},
        {"id":3, "title":"Pride and Prejudice"}
    ]

    def get(self):
        return jsonify({"books": self.books})

    def post(self):
        if not request.json or not 'title' in request.json:
            abort(400)

        book = {
        "id": len(self.books) + 1,
        "title": request.json['title']
        }

        self.books.append(book)
        return jsonify({'book':book}), 201

get 方法工作正常。我可以在我的本地主机上看到它。但是当我尝试使用邮递员发布到我的本地主机时 - 405 错误

这就是我要发布到 http://localhost/books/ 的全部内容

{
   "title": "Frankenstein"
}

1 个答案:

答案 0 :(得分:1)

感谢您提供更多详细信息,我尝试运行您的应用程序,它确实对我有用,我所做的唯一更改是实际 URL。您已在 /books 前缀下注册了您的图书 API。这是您代码中的特定位置 https://github.com/branhoff/wishlist-api/blob/ee9fc696069d98513a89c249d23874d429684d54/book/views.py#L7

curl -X POST -H "Content-Type: application/json" -d '{"title": "GoT"}' http://localhost:80/books/

enter image description here