flask - Swagger 中带有 py2neo 和烧瓶的 API 端点
问题描述
我最近开始使用 Swagger、py2neo 和 flask 库来完成我自己学习的端到端项目。
我打算使用它,因为使用此驱动程序比驱动程序本身py2neo
更容易为 neo4j 创建查询。neo4j
我正在尝试复制https://github.com/neo4j-examples/neo4j-movies-template,特别app.py
是这样我可以在swagger ui
.
一切正常GET
如何解决客户端-服务器 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?
解决方案
推荐阅读
- vba - 如果选择了组外的另一个选项按钮,则取消选择整个选项按钮组
- python - CrawlerRunner() 没有通过scrapy的管道文件
- sql - 在实体框架中使用左连接过滤
- c - Do-while 循环 scanf 在读取单个字符时读取循环两次而不是一次
- azure - 无法使用 Azure AD 进行身份验证,丢失 cookie 和重定向显示没有权限
- sql - 如何过滤从 PostgreSQL 表中的 JSON 列返回的 json 数组?
- azure - 使用 Terraform 管理基础设施的环境特定属性
- visual-studio - 如何在没有“在程序集中找不到迁移配置类型”问题的情况下创建迁移?
- angular - 如何在 Angular 和 localstorage 中检查和存储用户 ID
- javascript - 在 node.js 中的模块之间传递 mysql 连接