用FastAPI编写RESTful接口

安装

开始之前,需要先安装 fastapi 包,一般使用 pip 命令即可:

1
$ pip install fastapi

此外,还需要一个 ASGI 服务器,生产环境可以使用 UvicornHypercorn

1
$ pip install uvicorn

例子

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from fastapi import FastAPI

app = FastAPI()

@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}

运行

将以上例子保存为 main.py ,接着用 uvicorn 启动程序:

1
2
3
4
5
6
$ uvicorn main:app --reload
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [6839] using statreload
INFO:     Started server process [6841]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

如果你看到以上输出,说明 API 服务已经正常运行。

验证

我们用 curl 命令访问 API ,看是否符合预期:

1
2
3
4
$ curl http://127.0.0.1:8000/
{"Hello":"World"}
$ curl http://127.0.0.1:8000/items/123?q=abc
{"item_id":123,"q":"abc"}

【小菜学Python】系列文章首发于公众号【小菜学编程】,敬请关注:

【小菜学Python】系列文章首发于公众号【小菜学编程】,敬请关注: