测试FastAPI实例的正常运行



我想用POST操作测试FastAPI实例的正确功能。第一步是测试操作,就好像它是一个正常的Python函数一样,如下所示:

import uvicorn
from fastapi import Request, FastAPI
from typing import List, Optional
from pydantic import BaseModel
app = FastAPI()
class Company(BaseModel):
id: int
name: str
vat: str
website: Optional[str] = None
@app.post("/processes/new/")
def new_process(id_user: int, companies: List[Company], stop_words: str, blacklist: List[str]):
# some code
return companies[0].dict() # just an example of output
if __name__ == "__main__":
id_user = 1
companies = [Company(id=1, name="ABC srl", vat="0123456789", website="https://www.abc.it/"), Company(id=2, name="XYZ srl", vat="9876543210", website="https://www.xyz.it/")]
stop_words = "a;the;and"
blacklist = ["https://www.def.it/", "https://www.ghi.it/"]
print(new_process(id_user, companies, stop_words, blacklist))

一切都很好。现在,为了能够测试API,我做了以下更改:

@app.post("/processes/new/")
async def new_process(id_user: int, companies: List[Company], stop_words: str, blacklist: List[str]):
# some code
return companies[0].dict() # just an example of output
if __name__ == "__main__":
uvicorn(app, host="127.0.0.1", port=8000)

我有两个问题:

  1. 如果我想在浏览器上测试操作,我能做什么?我应该用Postman这样的东西吗?如果是,我应该以什么格式输入测试数据?

  2. 另一方面,如果我想通过POST请求测试功能?我应该使用requests模块吗?在这种情况下,我应该以哪种格式输入输入数据?

您可以将Postman或脚本用于请求,但有一种更快的方法可以手动测试API。FastAPI有内置的Swagger(OpenAPI(支持,所以只需转到127.0.0.1:8000/docs并测试您的API端点。

您可以查看更多详细信息:https://fastapi.tiangolo.com/tutorial/first-steps/?h=openapi#interactive-api文档

最新更新