【FastAPI】请求体

在 FastAPI 中,请求体(Request Body)是通过请求发送的数据,通常用于传递客户端提交的信息。FastAPI 使得处理请求体变得非常容易。

请求体是客户端发送给 API 的数据。响应体是 API 发送给客户端的数据

注:不能使用 GET 操作(HTTP 方法)发送请求体。
要发送数据,你必须使用下列方法之一:POST(较常见)、PUT、DELETE 或 PATCH。

具体代码例如:

from typing import Unionfrom fastapi import FastAPI
from pydantic import BaseModelclass Item(BaseModel):name: strdescription: Union[str, None] = Noneprice: floattax: Union[float, None] = Noneapp = FastAPI().post("/items/")
async def create_item(item: Item):return item

运行结果用文档测试得:
在这里插入图片描述
仅使用了 Python 类型声明,FastAPI 将会:
将请求体作为 JSON 读取。
转换为相应的类型(在需要时)。
校验数据。
如果数据无效,将返回一条清晰易读的错误信息,指出不正确数据的确切位置和内容。
将接收的数据赋值到参数 item 中。
由于你已经在函数中将它声明为 Item 类型,你还将获得对于所有属性及其类型的一切编辑器支持(代码补全等)。
为你的模型生成 JSON 模式 定义,你还可以在其他任何对你的项目有意义的地方使用它们。
这些模式将成为生成的 OpenAPI 模式的一部分,并且被自动化文档 UI
所使用。

请求体 + 路径参数 + 查询参数

同时声明请求体、路径参数和查询参数。

FastAPI 会识别它们中的每一个,并从正确的位置获取数据。
from typing import Unionfrom fastapi import FastAPI
from pydantic import BaseModelclass Item(BaseModel):name: strdescription: Union[str, None] = Noneprice: floattax: Union[float, None] = Noneapp = FastAPI().put("/items/{item_id}")
async def update_item(item_id: int, item: Item, q: Union[str, None] = None):result = {"item_id": item_id, **item.dict()}if q:result.update({"q": q})return result

item_id 就是路径参数
Item 是请求体
q 就是查询参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/410578.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mantle: A Programmable Metadata Load Balancer for the Ceph File System——论文泛读

SC 2015 Paper 元数据论文阅读汇总 问题 优化Ceph的元数据局部性和负载平衡。 现有方法 提高元数据服务性能的最常见技术是在专用的元数据服务器(MDS)节点之间平衡负载 [16, 25, 26, 21, 28]。常见的方法是鼓励独立增长并减少通信,使用诸…

Qt 状态机框架:The State Machine Framework (一)

传送门: Qt 状态机框架:The State Machine Framework (一) Qt 状态机框架:The State Machine Framework (二) 一、什么是状态机框架 状态机框架提供了用于创建和执行状态图/表[1]的类。这些概念和表示法基于Harel的Statecharts:一种复杂系统的可视化形式&#xff…

12AOP面向切面编程/GoF之代理模式

先看一个例子: 声明一个接口: // - * / 运算的标准接口! public interface Calculator {int add(int i, int j);int sub(int i, int j);int mul(int i, int j);int div(int i, int j); }实现该接口: package com.sunsplanter.prox…

Controller层自定义注解拦截request请求校验

一、背景 笔者工作中遇到一个需求,需要开发一个注解,放在controller层的类或者方法上,用以校验请求参数中(不管是url还是body体内,都要检查,有token参数,且符合校验规则就放行)是否传了一个token的参数&am…

Linux中的yum源仓库和NFS文件共享服务

一.yum简介 1.1 yum简介 yum,全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。类似于windows系统的中电脑软件关键,可以一键下载,一键安装和卸载。yum 是改进型的 RPM 软件管理器&am…

普通人做VR全景创业,优势表现在哪里?

伴随着5G时代的到来,快节奏的生活带动了“宅经济”、“云生活”的发展,消费者也越来越依赖智能化设备给生活带来的便利。因此VR全景将成为未来消费升级的一种新媒介,VR全景能够将企业环境以及产品、服务等信息更直观、透明化地展示给用户&…

01章【JAVA开发入门】

计算机基本概念 计算机组成原理 计算机组装 计算机:电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件和软件所组成,没有安装任何软件的计算机称为裸机。常见的形式有台式计算机、…

【GCC】6 接收端实现:周期构造RTCP反馈包

基于m98代码。GCC涉及的代码,可能位于:webrtc/modules/remote_bitrate_estimator webrtc/modules/congestion_controller webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc webrtc 之 RemoteEstimatorProxy 对 remote_bitrate_estimator 的 RemoteEstimato…

SECS通讯资料大全 配方处理 recipe上传下载 S7Fx和S7F3、S7F5

在SECS/GEM里面,recipe配方称为Process Recipe Management Process Recipe Management — 设备处理规范(如配方)必须通过设备和主机系统之间的交互进行管理。 PPID也就是Process Recipe ID的意思 配方是怎么交互和处理呢 COMMENTS HOST EQ…

.NET 8.0 发布到 IIS

如何在IIS(Internet信息服务)上发布ASP.NET Core 8? 在本文中,我假设您的 Windows Server IIS 上已经有一个应用程序池。 按照步骤了解在 IIS 环境下发布 ASP.NET Core 8 应用程序的技巧。 您需要设置代码以支持 IIS 并将项目配…

docker screen 常用基础命令

1.docker基础命令 1.1开启docker systemctl start docker #开启docker service docker restart #重启docker systemctl stop docker #关闭docker 1.2查看命令 docker images #查看docker镜像docker ps #查看正在运行的镜像或者容器docker ps -a #查看所有容器1.3运…

线程的使用

线程的创建方式 1、实现Runnable Runnable规定的方法是run(),无返回值,无法抛出异常 实现Callable 2、Callable规定的方法是call(),任务执行后有返回值,可以抛出异常 3、继承Thread类创建多线程 继承java.lang.Thread类&#xff0…