首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何记录swagger / connexion请求体?

如何记录swagger / connexion请求体?
EN

Stack Overflow用户
提问于 2019-03-23 17:01:17
回答 1查看 3.1K关注 0票数 2

我正在使用connexion和Swagger在Python中创建API。我想把所有的来电都记录到一个文件中,这样我就可以看到请求的内容了。我已经能够记录我收到的电话的路径,但我不知道如何记录身体。

下面是我配置日志的地方:

代码语言:javascript
复制
if __name__ == '__main__':
    import logging
    logging.basicConfig(format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s',                            filename='golden_record.log',level=logging.DEBUG)

当我查看日志时,我看到了路径,如下所示.

2019-03-23 12:47:16,182 - INFO - 127.0.0.1 - 23/Mar/2019 12:47:16 "POST /golden_record/account HTTP/1.1“400 -

但我没有看到呼叫的主体(即我发送的数据)。是否有一种方法可以自动记录每一次来电?这样做将有助于调试不按预期工作的调用。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-07 21:45:04

只需添加一个酒瓶before_request。Connexion实例将Flask实例存储为app属性,因此您可以使用app.app进行访问。

添加代码,您将记录主体:

代码语言:javascript
复制
@app.app.before_request
 def log_request_info():
    print('Body: %s', request.get_data())

print方法更改为记录器:

代码语言:javascript
复制
@app.app.before_request
 def log_request_info():
    logger.info('Body: %s', request.get_data())

request导入是:

from flask import request

app是您的Connexion实例:

app = connexion.App(__name__, specification_dir="./swagger/")

我用代码创建了一个Gist。https://gist.github.com/kevinmmartins/f832c21215bb51cea73b8fdd28f6d88d

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55316205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档