pydantic 使用初探
借助 pydantic
库, 定义好接口参数模型后, 可以自动进行参数校验, 自动生成接口文档.
pydantic
官方简介:
Data validation and settings management using Python type hinting.
Fast and extensible, pydantic plays nicely with your linters/IDE/brain. Define how data should be in pure, canonical Python 3.6+; validate it with pydantic.
1. 基本使用方法
import unittest
from pydantic import Field, BaseModel
class BA(BaseModel):
a: int = Field(description="int...")
class BB(BA):
b: str = Field(description="string...")
class TestPyDantic(unittest.TestCase):
def setUp(self) -> None:
pass
def testSchemaJson(self):
""" """
print(BA.schema_json())
print(BB.schema_json())
def testDynamicTypeHint(self, ):
""" 测试动态代码提示 """
class JA(object):
BASE = BA
def __init__(self, **kwargs):
""" """
self._params = self.BASE(**kwargs)
@property
def params(self) -> BA:
return self._params
def aaa(self):
""" """
print(type(self.params.a), self.params.a)
class JB(JA):
BASE = BB
@property
def params(self) -> BB:
return self._params
def bbb(self):
""" """
print(type(self.params.a), self.params.a)
print(type(self.params.b), self.params.b)
# 输入配置
# 动态
JA(a="10").aaa()
JB(a=10, b="b").bbb()