fastapi学习文档

fastapi介绍(三):简单应用升级

2019-09-25  本文已影响0人  warmsirius

一、main.py升级

现在我们把笔记(二)中的main.py修改一下代码:

使用Pydantic模块,实现用标准的python类来声明请求体

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class Item(BaseModel):
    name: str
    price: float
    is_offer: bool = None


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}


@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_name": item.name, "item_id": item_id}

二、API交互文档

现在打开 http://127.0.0.1:8000/docs.

三、可选的API交互文档

四、概括

总的来说,你一旦定义了参数的类型,或者是请求体的类型等作为视图函数的参数,你就相当于定义了标准的Python类型。

你不必去学一个新语法、新方法或者一个指定库的类等等。只需要使用标准的Python3.6+的版本即可。

例如,对于一个整数:

item_id: int

或者对于一个更复杂的Item的模型:

item: Item

并且通过这个单一的申明,你可以获得:

1. 编辑器支持:

2. 数据校验:

3. 输入数据的转换:将网络传输的数据转变成Python数据和Python类型

4. 输出数据的转换:将Python数据或Python类型转换成网络传输的数据(转变为JSON)

5. 自动交互的API文档,可以有两种用户交互界面

回到当前项目

我们回到之前的fastapi的项目代码,FastAPI将会:


Convert from and to JSON automatically.
Document everything with OpenAPI, that can be used by:
Interactive documentation systems.
Automatic client code generation systems, for many languages.
Provide 2 interactive documentation web interfaces directly.
上一篇下一篇

猜你喜欢

热点阅读