1. 程式人生 > 其它 >FastAPI響應系列(二) 響應狀態碼

FastAPI響應系列(二) 響應狀態碼

一、預設響應狀態碼

響應狀態碼用於伺服器返回給客戶端響應的狀態,常用的有:

  • 200及以上 成功的響應
  • 300及以上 重定向
  • 400及以上 客戶端錯誤
  • 500及以上 服務端錯誤

FastAPI的路徑操作中可以使用status_code引數來宣告HTTP狀態碼。FastAPI中可以通過狀態碼數字、狀態碼變數方式來使用。

1、狀態碼數字

from fastapi import FastAPI

app = FastAPI()


@app.post("/status_code/", status_code=200)
async def status_code():
    return {"status_code": 200}

2、狀態碼變數

如果不記得具體的數字,此時可以使用提供的變數形式。

from fastapi import FastAPI, status

app = FastAPI()


@app.post("/status_attribute/", status_code=status.HTTP_200_OK)
async def status_code():
    return {"status_code": status.HTTP_200_OK}

這與上面的數字效果是一樣的。兩種方式都可以,其表現形式如下:

二、自定義響應狀態碼

  在某些情況下可能需要返回與預設狀態碼不同的狀態碼。比如,你希望返回預設的HTTP狀態碼200,但是如果資料不存在,你需要建立它並且返回建立的HTTP狀態碼201,此時你可以使用引數Response。

from fastapi import FastAPI, Response, status

app = FastAPI()

tasks = {"k1": "v1"}


@app.put("/get_or_create_task/{task_id}", status_code=200)
def get_or_create_task(task_id: str, response: Response):
    if task_id not in tasks:
        tasks[task_id] = "this task not in tasks before"
        response.status_code 
= status.HTTP_201_CREATED return tasks

此時訪問該api: