FastAPI 参数的作用

        FastAPI是一个现代化的Python web框架,其参数具有重要的作用。在FastAPI中,参数被用于接收HTTP请求中的数据及其它相关信息。

FastAPI支持的参数类型包括:

查询参数(query parameters)

        查询参数是指将参数附加到URL末尾以进行请求的一种技术。查询参数通常用于向Web服务器传递额外的信息,以便服务器可以根据查询参数返回相应的响应。例如,在Google搜索中,查询参数用于传递搜索关键字,而在电子商务网站中,查询参数用于传递商品ID和其他参数,以便显示特定的产品页面。查询参数由一个“?”字符开始,后跟一系列以“&”字符分隔的“名称=值”对,如以下示例所示:

        https://www.example.com/search?q=apple&category=fruit&sort=price&order=desc

        在此示例中,“q”表示搜索关键字,“category”表示商品类别,“sort”表示按价格排序,“order”表示降序排列。服务器可以解析查询参数,并根据这些参数提供定制的响应。

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/")
async def read_items(q: str = None):
    results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
    if q:
        results.update({"q": q})
    return results

路径参数(path parameters)

        路径参数是指在URL的路径中包含的参数,通常用于指定资源的特定属性或标识符。路径参数与查询参数(query parameters)不同,查询参数是会在问号后面提供的参数,例如`?name=John&age=30`。

例如,以下URL中的`:id`就是一个路径参数:

```
https://example.com/users/:id
```

        这个URL表示一个RESTful API,用于查询用户信息。`:id`是路径参数,表示要查询的用户的唯一标识符。在实际使用时,`:id`将被替换为实际的用户ID。

        使用路径参数可以使URL更加语义化,同时也可以简化API的设计和实现。在处理URL时,路径参数通常由Web框架或路由器自动解析。

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}

请求体参数(request body parameters)

        请求体参数(request body parameters)是指在 HTTP 请求中通过请求体(request body)方式传递的参数。通过请求体参数,可以向服务器传递更加复杂、结构化的数据,比如 JSON 格式的数据、XML 格式的数据等。

        对于一些请求,比如 GET 请求,请求参数通常是通过 URL 传递的,而不是通过请求体传递的。但是对于一些请求,比如 POST、PUT、PATCH 等请求,请求体常常用来传递数据(比如表单数据、文件数据等)。

        请求体参数的格式通常由请求体的数据类型(Content-Type)来指定,比如 application/json、application/xml、multipart/form-data 等。在处理请求体参数时,服务器端的应用程序通常需要进行相应的解析和处理,以便正确地获取请求体参数中的数据。

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

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

请求头参数(header parameters)

        请求头参数是包含在 HTTP 请求中的元数据,用于描述请求或响应的信息。请求头参数通常包括以下内容:

  • User-Agent:指示发送请求的客户端类型和版本号。
  • Accept:指定客户端需要接受的 MIME 类型。
  • Authorization:用于验证客户端身份的凭证信息。
  • Content-Type:指定请求或响应的 MIME 类型。
  • Cookie:用于识别客户端的会话信息。
  • Referer:指示请求的来源 URL。
  • Host:指示被请求的服务器主机名。
  • If-Modified-Since:用于缓存控制,指示客户端能够接受的最新修改时间。

请求头参数可以帮助服务器更好地处理请求,同时也可以提高通信的安全性和效率。

from fastapi import FastAPI, Header

app = FastAPI()

@app.get("/items/")
async def read_items(user_agent: str = Header(None)):
    return {"User-Agent": user_agent}

Cookie 参数(cookie parameters)

        Cookie参数是指在设置(或更新)cookie时,可以使用的一些可选参数。这些参数可以用来定义cookie的属性,如过期时间、域、路径、安全标志等。

以下是一些常见的Cookie参数:

  • name:cookie的名称
  • value:cookie的值
  • domain:cookie的域名,指定cookie可以被哪些域名访问
  • path:cookie的路径,指定cookie可以被哪些URL路径访问
  • expires:cookie的过期时间
  • max-age:cookie的最大有效时间,单位为秒
  • secure:指定cookie只能通过HTTPS协议传输
  • httponly:指定cookie只能在HTTP请求中传输,不能通过JavaScript访问

        使用这些参数,可以对cookie进行更加精细的控制,从而提高Web应用程序的安全性和可靠性。

        总的来说,FastAPI的参数处理使得开发者可以快速地对请求数据进行解析和验证,从而更加轻松地编写高效的RESTful API。

参考:FastAPI文档

你可能感兴趣的:(Python,python,后端,fastapi)