FastApi的post请求数据完整示例
FastApi的post请求和get请求规范完整示例POST请求模型类from typing import List, Optional, Union, Dictfrom pydantic import BaseModel, Field#请求数据输入格式class ItemIndurstry(BaseModel):year_: str = Field(title='年份,2014年至2021年')
·
FastApi的post请求和get请求规范完整示例
POST请求
- 模型类
from typing import List, Optional, Union, Dict
from pydantic import BaseModel, Field
# 请求数据输入格式
class ItemIndurstry(BaseModel):
year_: str = Field(title='年份,2014年至2021年')
# 返回数据输出格式
class ItemIndurstryOut(BaseModel):
code: int = Field(default=1, title='1代表请求数据成功,0代表数据请求失败')
# DICT 字典类型它中括号第一个参数是key,第二个是value List是列表 Union是取并集
data: Dict[str, Union[str, List[Dict[str, Union[int, str]]]]] = Field(default={
"year": "2021",
"info": "2021年各行业侵权热度状况",
"content": [
{
"value": 0,
"name": "",
"percent": ""
}
],
"top_one": "",
"top_three": ""
})
# 返回请求不到数据格式
class ItemIdurstryNodata(BaseModel):
code: int = Field(default=0, title='数据请求失败')
data: Union[str, None] = Field(default=None)
-
路由逻辑
# 添加response_model定义输出的数据格式,包括正确的输出格式和请求不成功的数据格式 @sentiment_router.post('/indurstry/hot/',response_model=Union[ItemIndurstryOut,ItemIdurstryNodata]) async def indurstry_hot(item: ItemIndurstry=Body(...,example={'year_':"2021"})): ''' 反馈每年侵权行业热度前十占比,侵权最严重的行业前3名 --- - 输入: 年份,支持2014年至2021年 - 输出: 年份对应的行业侵权占比,排行等 ''' return content
-
在docs交互文档下查看
GET请求
-
模型类
from typing import List, Optional, Union, Dict from pydantic import BaseModel, Field # 请求数据输出格式 class CompanyInfoOut(BaseModel): result: Dict[str, Union[int, str, None, Dict[str, Union[int, str, None]]]] = Field(default={ "id": 0, "base": "", "name": "", "legalPersonID": 0, "legalPersonName": "", "legalPersonType": 0, "regNumber": 0, "companyOrgType": "", "category": { "categoryCode": "", "cate3": "", "cate2": "", "cate1": "" }, "region": { "regionCode": "", "province": "", "city": "", "area": "" }, "regLocation": "", "estiblishTime": "", "fromTime": "", "toTime": "", "businessScope": "", "regInstitute": "", "approvedTime": "", "regStatus": "", "regCapital": "", "actualCapital": "", "orgNumber": 0, "orgApprovedInstitute": "", "parentID": 0, "listCode": "", "property1": "", "property2": "", "property3": "", "property4": "" }) retCode: str = Field(default='000000', title='000000,数据请求成功') retMsg: str = Field(default='success') # 请求数据错误格式 class CompanyError(BaseModel): retCode: str = Field(default="000001", title="请求数据失败") retMsg: str = Field(default="查询成功无结果")
-
路由逻辑
@router.get('/info/',response_model=Union[CompanyInfoOut,CompanyError]) async def companyinfo(name: str= Query(default='杭州阿里巴巴广告有限公司', title='企业名')): ''' 根据企业具体名称查询企业基本信息 --- - 输入: 企业名称 - 输出: 企业的基本信息,包括法人、注册地址、注册资金等信息 ''' return data
-
在docs交互文档下查看

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)