
1 undertonememorie 2020 年 4 月 22 日 voluptuous Schema 校验 规定字段类型和长度,测试人员肯定冲着搞崩你接口的心态去测试,你要保证系统的健壮性 |
2 ClericPy 2020 年 4 月 22 日 我以前做的和 Fastapi 里用 pydantic 实现的差不多, 现在用的 Fastapi....... |
3 wangyzj 2020 年 4 月 22 日 marshmallow |
4 ipwx 2020 年 4 月 22 日 FastApi,你值得拥有 |
5 sichuyoudang312 OP @undertonememorie 我接口也想写的健壮些,文档里面写了 offset <int> <可选> 分页偏移量,默认 0,结果测试非输入字符串,那就抛异常了 |
6 sichuyoudang312 OP @ClericPy 因为这事发了帖子,发现了 pydantic,我不改了,我要去研究 pydantic |
7 sichuyoudang312 OP @ipwx 学习了 |
8 bnm965321 2020 年 4 月 22 日 出现异常当然要改,至少要把异常以错误的形式回馈 |
9 also24 2020 年 4 月 22 日 offset 过大这件事,感觉应该在业务代码中处理,而不是入参时处理吧 |
10 johnsona 2020 年 4 月 22 日 marshlallow+webargs,也是 schema 和我一起念,skema |
11 Vegetable 2020 年 4 月 22 日 生产服务器的所有异常都必须被捕获,无论任何情况都不能让上层报 500 Internal Error 我还以为这是后端开发的基本常识。 |
12 guyskk0x0 2020 年 4 月 22 日 via Android 可以试试 Validr 这个库,我的用法: https://github.com/anyant/rssant/blob/master/rssant_api/views/feed.py#L152 |
13 SingeeKing PRO “然后出现异常” 难道你的路由分发那里没有做错误捕获处理吗。。。 |
14 zhangqilin 2020 年 4 月 22 日 Flask 有个 Valid 对象 我之前就是参照这个写了个 DjangoValid 给公司自己的项目用的 万幸很好用 |
15 sichuyoudang312 OP @Vegetable 当然不会让它报 500 了 |
17 Vegetable 2020 年 4 月 22 日 @jsisjs20130824 一般我会在最外层做一个捕获所有异常的中间件, 然后向客户端返回{code:500,msg:未知错误},然后日志写入堆栈信息. |
18 Vegetable 2020 年 4 月 22 日 我觉得测试说的有点道理, 我为了避免这种问题,会直接返回参数异常,最多返回一下哪个字段异常了,不会返回为什么异常了.这样就避免了过于细致的类型判断.不过你引入框架的话,往能够细致而不失优雅的解决. |
19 ps1aniuge 2020 年 4 月 22 日 我觉得测试说的对,严谨些,让别人挑不出毛病。 |
20 superrichman 2020 年 4 月 22 日 via iPhone 是你的参数转换的问题,接口健壮性不够强 |
21 hell0v2 2020 年 4 月 22 日 一般业务层做处理,不过接口也要 catch 住吧;反正不管怎么协调,前端输入异常的情况下,要有合理的返回 |
22 forkc 2020 年 4 月 22 日 wtform |