如何解决Swagger 中带有 py2neo 和烧瓶的 API 端点
我最近开始使用 Swagger、py2neo 和 Flask 库来完成我自己学习的端到端项目。
我打算使用 py2neo
,因为使用此驱动程序为 neo4j 创建查询比使用 neo4j
驱动程序本身更容易。
我正在尝试重现 https://github.com/neo4j-examples/neo4j-movies-template,特别是 app.py
,以便我可以在 swagger ui
中看到它。
对于 GET
但是,当我执行 POST
时,我无法更新数据库。 ()
如何解决客户端-服务器 POST?
class RateMovie(Resource):
@swagger.doc({
'tags': ['movies'],'summary': 'Rate a movie from','description': 'Rate a movie from 0-5 inclusive','parameters': [
{
'name': 'id','description': 'movie tmdbId','in': 'path','type': 'string',},{
'name': 'rating','in': 'body','schema': {
'type': 'object','properties': {
'rating': {
'type': 'integer',}
}
},],'responses': {
'200': {
'description': 'movie rating saved'
},'401': {
'description': 'invalid / missing authentication'
}
}
})
def post(self):
parser = reqparse.RequestParser()
parser.add_argument('rating',choices=list(range(0,6)),type=int,required=True,help='A rating from 0 - 5 inclusive (integers)')
args = parser.parse_args()
rating = args['rating']
def rate_movie(movie_id,rating):
db=get_db()
query='''
MERGE (m:Movie)
WITH m
MATCH (m:Movie)
where m.title='{}'
SET m.rating = {}
RETURN m
'''.format(movie_id,rating)
result = db.run(query)
return [i for i in result]
return {}
api.add_resource(RateMovie,'/api/v0/ratemovie')
然后我在 Swagger UI 中执行“TRY IT OUT”。
我收到以下回复
127.0.0.1 - - [10/Mar/2021 15:08:57] "POST /api/v0/ratemovie HTTP/1.1" 200 -
但是,如果我独立运行
def rate_movie(movie_id,rating):
db=get_db()
query='''
MERGE (m:Movie)
WITH m
MATCH (m:Movie)
where m.title='{}'
SET m.rating = {}
RETURN m
'''.format(movie_id,rating)
result = db.run(query)
return [i for i in result]
print(rate_movie(movie_id='The Matrix Reloaded',rating=10))
数据库得到更新。
如何解决客户端-服务器 POST?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。