尝试从 Postman POST - 在 Flask REST API 中出现 405 错误
Trying to POST from Postman - getting 405 error in Flask REST API
尝试使用 Postman 进行测试,看看我正在构建的 API 的 post 方法是否有效。我一直收到 405 错误,向我暗示 posting 的功能甚至不可用。但它非常简单class,所以我看不出有什么问题。
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 方法工作正常。我可以在我的本地主机上看到它。但是当我尝试使用 postman - 405 error
到我的本地主机时 post
这就是我 post 到 http:///localhost/books/
的全部内容
{
"title": "Frankenstein"
}
感谢您提供更多详细信息,我尝试了 运行 您的应用程序,它确实对我有用,我所做的唯一更改是实际 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/
尝试使用 Postman 进行测试,看看我正在构建的 API 的 post 方法是否有效。我一直收到 405 错误,向我暗示 posting 的功能甚至不可用。但它非常简单class,所以我看不出有什么问题。
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 方法工作正常。我可以在我的本地主机上看到它。但是当我尝试使用 postman - 405 error
到我的本地主机时 post这就是我 post 到 http:///localhost/books/
的全部内容{
"title": "Frankenstein"
}
感谢您提供更多详细信息,我尝试了 运行 您的应用程序,它确实对我有用,我所做的唯一更改是实际 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/