fastapi接收json数据使用@app.post还是@app.put
时间: 2023-12-12 21:02:05 浏览: 172
接收 JSON 数据时,使用 `@app.post` 或 `@app.put` 都可以,具体使用哪个取决于你的业务需求。
一般来说,如果你的接口是用来创建新的资源,那么你应该使用 `@app.post`。例如,当客户端需要提交一个 JSON 对象来创建一个新的用户时,你可以使用 `@app.post` 定义一个接口:
```python
from fastapi import FastAPI
app = FastAPI()
@app.post("/users")
async def create_user(user: dict):
# 在这里处理新用户的创建逻辑
return {"message": "User created successfully!"}
```
在这个例子中,我们使用 `@app.post` 定义了一个用来创建新用户的接口,接口的路径为 `/users`,接口的参数名为 `user`,参数类型为 Python 中的 `dict`。当客户端发起一个 POST 请求到 `/users` 接口时,FastAPI 会自动将请求体中的 JSON 数据解析成一个 Python 字典,并将其赋值给 `user` 参数。
如果你的接口是用来更新已有的资源,那么你应该使用 `@app.put`。例如,当客户端需要更新一个用户的信息时,你可以使用 `@app.put` 定义一个接口:
```python
from fastapi import FastAPI
app = FastAPI()
@app.put("/users/{user_id}")
async def update_user(user_id: int, user: dict):
# 在这里处理更新用户信息的逻辑
return {"message": f"User {user_id} updated successfully!"}
```
在这个例子中,我们使用 `@app.put` 定义了一个用来更新用户信息的接口,接口的路径为 `/users/{user_id}`,其中 `{user_id}` 表示用户 ID,接口的两个参数分别为 `user_id` 和 `user`,其中 `user_id` 表示需要更新的用户 ID,`user` 表示需要更新的用户信息。当客户端发起一个 PUT 请求到 `/users/{user_id}` 接口时,FastAPI 会自动将请求体中的 JSON 数据解析成一个 Python 字典,并将其赋值给 `user` 参数,同时将 URL 中的 `user_id` 参数赋值给 `user_id` 参数。
阅读全文