我已经开始使用apidoc
生成 REST api 文档。我用它尝试了不同的东西。
在我flask
基于 api 的应用程序中,我使用JWT
(特别是 flask-jwt)进行身份验证。文档被正确生成,但来自文档的请求没有正确发生。
这是我放置docsting
用于生成文档的地方
def authenticate(username, password):
"""
@api {post} /auth Authentication url
@apiName Authentication
@apiGroup Login
@apiParam {String} username Username of the user
@apiParam {String} password Password of the user
@apiSuccess {String} access_code JWT
@apiSuccessExample Success Response
HTTP/1.1 200 OK
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZGVudGl0eSI6IjM5MDA4MGExLWY0ZjctMTFlNS04NTRkLTI4ZDI0NDQyZDNlNyIsImlhdCI6MTQ1OTE3ODE0NSwibmJmIjoxNDU5MTc4MTQ1LCJleHAiOjE0NTkxNzg0NDV9.nx_1a4RmvJ7Vlf1CvnMzqoTfzChcuJnDb1Tjy1_FnXw"
}
@apiErrorExample Invalid Credentials
{
"description": "Invalid credentials",
"error": "Bad Request",
"status_code": 401
}
"""
user = session.query(User).filter_by(username=username).first()
if user and user.is_correct_password(password):
return user
return False
当我生成文档时,它会正确生成
$ apidoc -i onehop/ -o doc
- 但是当我从生成的文档中传递凭据时,请求失败。我在烧瓶的请求中得到的请求数据是
''
(空的) Content-Type
即使在文档字符串中包含标题后,它也会失败。我在烧瓶的请求中得到的请求数据是username=test@example.com&password=test123
我已经通过在 Flask-JWT 的代码中添加调试点来确认上述内容
def _default_auth_request_handler():
data = request.get_json() # My debug poing
username = data.get(current_app.config.get('JWT_AUTH_USERNAME_KEY'), None)
password = data.get(current_app.config.get('JWT_AUTH_PASSWORD_KEY'), None)
但是,当我使用postman
它提出相同的请求时,它会正确发生。
我错过了什么?