FastApi-08- 路径参数校验
背景
和查询参数一样,路径参数也需要进行限定。
Path
通常,我们会直接使用 name:str='phyger'
的方式来限定路径参数的类型和默认值,但是对于路径参数的高级元数据,我们需要借助 FastApi
为我们提供的 Path
对象来实现。
通常路径参数时必须的,所以即便你指定了默认参数,其依然是必须的。
路径参数的 title
复制代码
限定路径参数的格式
数值校验
复制代码
复制代码
路径参数的顺序问题
当我们的业务模型中有两个 uri,一个路径参数是固定值,另一个是路径参数是变量,该如何处理呢?
假设当前业务中的视图有如下两条:
复制代码
分析以上代码,当我们请求/path/default
的时候,我们会得到{'msg':'I am default path.'}
的结果。
测试一下:
结果
这是怎么回事?和我预期的不一致。
这是因为代码中的两个 uri 冲突了,对于
/path/default
而言,/path/{name}
已经拦截了所有符合/path/xxx
的请求。我们只要将他两的顺序调整为固前变后(固定路径参数在前,变化路径参数在后)即可。
修改的代码
复制代码
再次测试:
测试结果
可以看到,/path/default
已经成功拦截并返回正确的结果。
再测试下非固定参数的功能:
可以看到,我们的非固定路径参数的其他功能均正常。
版权声明: 本文为 InfoQ 作者【Python测试和开发】的原创文章。
原文链接:【http://xie.infoq.cn/article/a769727f31d0186f144dde4c5】。文章转载请联系作者。
评论