首页
学习
活动
专区
圈层
工具
发布

FastAPI 学习之路(十九)处理错误

FastAPI 学习之路(十一) FastAPI 学习之路(十二)额外数据类型 FastAPI 学习之路(十三)Cookie 参数,Header参数 FastAPI 学习之路(十四)响应模型...响应结果 请求为 http://example.com/items/test(item_id 为 test)时,客户端会接收到 HTTP 状态码 - 200 及如下 JSON 响应结果: {..."item": "雷子说测试开发" } 但如果客户端请求 http://example.com/items/test1(item_id 为test1 不存在时),则会接收到 HTTP 状态码 - 404...(「未找到」错误)及如下 JSON 响应结果: { "detail": "Item not found" } 触发 HTTPException 时,可以用参数 detail 传递任何能转换为 JSON...FastAPI 自带了一些默认异常处理器。 触发 HTTPException 或请求无效数据时,这些处理器返回默认的 JSON 响应结果。

1.3K50

《深入探秘:从底层搭建Python微服务之FastAPI与Docker部署》

这些文档不仅详细描述了API的各个端点、请求参数、响应格式等信息,还提供了在线测试功能,方便开发者和测试人员进行接口调试和验证。...深度集成Python的类型提示功能,是FastAPI对代码质量的有力保障。类型注解使得代码的可读性和可维护性大幅提升,开发者在编写代码时能够更加清晰地表达变量和函数的类型信息。...在函数内部编写具体的业务逻辑,处理客户端的请求并返回相应的响应。在定义API端点时,充分利用FastAPI的类型提示和输入验证功能,确保接收的数据符合预期格式,提高接口的健壮性和安全性。...同时,合理设计响应数据结构,为客户端提供清晰、准确的信息。这一步就像是在房子框架内填充各种功能房间,使其具备实际的使用价值。利用Pydantic库进行数据验证和序列化是FastAPI开发中的重要环节。...在响应数据时,Pydantic同样能够将数据模型序列化为JSON格式,确保数据的正确传输和展示。这就好比为房子安装了一套高质量的过滤系统,保证输入和输出的信息都是准确、可靠的。

1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从原理到落地,一文搞懂这个让 AI 模型 “活起来” 的革命性协议!

    处理请求:服务器接收到请求后,解析请求内容,执行相应的操作(如查询数据库、读取文件等)。返回结果:服务器将处理结果封装成响应消息,发送回客户端。...八、测试和调试MCP服务器(一)测试方法在客户端中提出相关问题,检查是否能正确调用MCP服务器的工具并返回预期结果。例如,在Cursor中直接询问相关功能,看是否能自动调用MCP工具。...使用Postman等工具对MCP服务器的API进行测试,检查接口的响应是否正常。(二)调试技巧查看日志:许多MCP服务器会记录详细的日志信息,通过查看日志可以了解服务器的运行状态和可能出现的错误。...使用调试工具:如VS Code的调试功能,可帮助定位代码中的问题。检查配置文件:确保配置文件中的参数设置正确,如端口号、主机名、环境变量等。...权限问题:如果在运行命令时遇到权限不足的问题,可能需要使用sudo命令获取更高权限,但使用sudo时需谨慎操作。

    2.1K10

    FastAPI-API文档和自动化测试(四)

    测试 APIFastAPI 还提供了一个内置的测试客户端,用于测试您的应用程序。您可以使用 TestClient 来模拟 HTTP 请求,并使用 unittest 断言来检查响应是否正确。...下面是一个测试客户端的示例:from fastapi.testclient import TestClientfrom main import appclient = TestClient(app)def...() == {"detail": "Item not found"}在上面的代码中,我们使用 TestClient 创建一个测试客户端,并编写了三个测试函数,分别测试根路径、/items/{item_id...我们还使用 unittest 的 assertEqual 断言来检查响应状态码和 JSON 数据是否正确。...结论FastAPI 提供了许多有用的功能,使得设计、实现、测试和文档化 API 变得更加容易和高效。

    59420

    FastAPI(46)- JSONResponse

    背景 创建 FastAPI 路径操作函数时,通常可以从中返回任何数据:字典、列表、Pydantic 模型、数据库模型等 默认情况下,FastAPI 会使用 jsonable_encoder 自动将该返回值转换为...JSON 字符串 然后,FastAPI 会将与 JSON 兼容的数据(例如 dict)放在 JSONResponse 中,然后将 JSONResponse 返回给客户端 总结:默认情况下,FastAPI...将使用 JSONResponse 返回响应 但是可以直接从路径操作函数中返回自定义的 JSONResponse 返回响应数据的常见方式(基础版) https://www.cnblogs.com/poloyy...__name__} ' TypeError: Object of type Item is not JSON serializable 类型错误:项目类型的对象不是 JSON 可序列化的 因为它无法转换为..._201_CREATED) 正确传参的请求结果 更多自定义响应类型 JSONResponse HTMLResponse、PlainTextResponse ORJSONResponse、UJSONResponse

    1.6K10

    Github 火热的 FastAPI 库,站在了这些知名库的肩膀上

    这就是为什么在谈论版本 2.0 时通常会说“ Swagger”,对于版本3+来说是“ OpenAPI”。 启发 FastAPI 地方: 为API规范采用开放标准,而不是使用自定义架构。...因此,如果 JSON 体内又有 JSON 对象,这又是嵌套JSON对象JSON对象,它不能很好的生成文档和验证。 启发 FastAPI 地方 使用 Python 类型提示可以提供很大的编辑器支持。...它没有使用像第三方库(如Pydantic)提供数据验证,序列化和文档,它有自己的库。因此,这些数据类型定义将不太容易重用。 它需要更多详细的配置。...FastAPI 使用的框架 Pydantic Pydantic 是一个库,基于Python类型提示来定义数据验证,序列化和文档(使用JSON模式)。这使其非常直观。...测试基于 requests 的客户端。 CORS,GZip,静态文件,流式响应。 会话和 Cookie 支持。 100% 的测试覆盖率。 100% 类型注释的代码库。 零硬依赖性。

    6.3K30

    【FastAPI】请求体

    在 FastAPI 中,请求体(Request Body)是通过请求发送的数据,通常用于传递客户端提交的信息。FastAPI 使得处理请求体变得非常容易。 请求体是客户端发送给 API 的数据。...响应体是 API 发送给客户端的数据 注:不能使用 GET 操作(HTTP 方法)发送请求体。 要发送数据,你必须使用下列方法之一:POST(较常见)、PUT、DELETE 或 PATCH。...类型声明,FastAPI 将会: 将请求体作为 JSON 读取。...转换为相应的类型(在需要时)。 校验数据。 如果数据无效,将返回一条清晰易读的错误信息,指出不正确数据的确切位置和内容。 将接收的数据赋值到参数 item 中。...为你的模型生成 JSON 模式 定义,你还可以在其他任何对你的项目有意义的地方使用它们。 这些模式将成为生成的 OpenAPI 模式的一部分,并且被自动化文档 UI 所使用。

    37510

    25: 2026 推理工程师能力矩阵:工程化实践层

    3.4.1 API Server 架构 vLLM的API Server使用FastAPI实现,它的架构如下: 这个架构图展示了vLLM API Server的工作流程: 客户端请求通过FastAPI路由进入系统...请求经过验证后,被发送到请求处理模块 请求处理模块调用LLM Engine进行推理 LLM Engine使用Scheduler调度请求,Worker执行推理计算 推理结果通过响应生成模块返回给客户端...推理端点,支持流式和非流式输出 请求验证和处理 调用LLM Engine执行推理 生成响应 3.4.3 API Server 最佳实践 API Server的最佳实践包括: 使用FastAPI:FastAPI...4.2 API Server 框架对比 框架 优点 缺点 适用场景 FastAPI 高性能,自动生成文档,类型检查,异步支持 生态相对较小 现代API开发,高性能要求的场景 Flask 轻量级,生态丰富...gRPC 高性能,支持双向流,强类型检查 学习曲线陡峭,不支持浏览器直接访问 微服务间通信,高性能要求的场景 从对比结果可以看出,FastAPI是现代API开发的最佳选择,它提供了高性能、自动生成文档和类型检查等功能

    16410

    FastAPI后台开发基础(16): OAuth2 以及 JWT Token 的使用

    使用 OAuth2PasswordRequestForm 的优点:简化客户端实现:客户端不需要单独处理如何发送用户名和密码的细节,只需填充表单即可。...授权类型,这里是 "password",表示密码授权流程请求示例:使用 curl 发送请求的示例:curl -X 'POST' \ 'http://127.0.0.1:18081/items/' \...服务器端处理:在服务器端,get_items 函数接收这些数据,然后可以进行进一步的处理,如:验证用户名和密码的正确性检查客户端 ID 和密钥的有效性根据请求的权限范围生成相应的访问令牌最后,函数返回这些信息的字典形式...构建 JWT 的 payload,包括用户名、密码、客户端信息、授权类型、时间戳等。使用选定的算法和密钥生成 JWT。将生成的 JWT 存储在一个简单的缓存(字典)中,以便后续验证使用。...检查解码后的 payload 是否与缓存中的用户信息匹配。捕获并处理可能的异常,如过期的令牌或格式错误的令牌。3.

    1.8K65

    FastAPI(58)- 使用 OAuth2PasswordBearer 的简单栗子

    可以使用 OAuth2 通过 FastAPI 来构建它,通过 FastAPI 提供的工具来处理安全性 OAuth2 的授权模式 授权码授权模式 Authorization Code Grant 隐式授权模式...,返回这个用户的 token 到客户端 客户端存储 token,在后续发送请求携带该 token,就能通过身份验证了 FastAPI 中使用 OAuth2 的简单栗子 import uvicorn from...,FastAPI 会检查请求的 Authorization 头信息,如果没有找到 Authorization 头信息 或者头信息的内容不是 Bearer token,它会返回 401 状态码( UNAUTHORIZED...# 7、用户名、密码验证通过后,返回一个 JSON return {"access_token": user.username, "token_type": "bearer"} 获取 token 的接口的响应必须是一个...JSON 对象(返回一个 dict 即可) 它应该有一个 token_type,当使用 Bearer toklen 时,令牌类型应该是 bearer 它应该有一个 access_token,一个包含访问

    3.5K40

    一个Bug的修复过程回顾

    从json的dumps异常来切入 我想,虽然我们没法直接捕获Fastapi框架内部在响应环节的异常,不过可以在数据return前,使用json的dumps对数据进行测试,这里异常不正是一样的吗?...于是在数据响应前增加了对返回值的测试及格式化: import pickle import numpy as np from json import JSONEncoder, dumps from fastapi.encoders...响应数据的时候是json格式,为什么我们在测试json结构时,没有捕获到这个错误呢?...json的dumps函数序列化,但是fastapi使用的参数和我测试json时使用的不同,特别注意allow_nan这个参数,在fastapi里传的值是False,而查看dumps函数的函数参数可知,该参数的默认值是...因此,对于业务逻辑比较复杂的系统,最好使用强类型语言进行开发(如golang),如果只能用python,那在系统规划上应该投入多一些时间和精力,在数据在传输过程中,多对数据结构进行测试,保障每个步骤的数据结构都是清晰的

    1.9K40

    FastAPI框架诞生的缘由(下)

    因此,如果 JSON 体内又有 JSON 对象,这又是嵌套JSON对象JSON对象,它不能很好的生成文档和验证。 启发 FastAPI 地方 使用 Python 类型提示可以提供很大的编辑器支持。...它没有使用像第三方库(如Pydantic)提供数据验证,序列化和文档,它有自己的库。因此,这些数据类型定义将不太容易重用。 它需要更多详细的配置。...FastAPI 使用的框架 Pydantic Pydantic 是一个库,基于Python类型提示来定义数据验证,序列化和文档(使用JSON模式)。这使其非常直观。...FastAPI使用它来处理所有数据验证,数据序列化和自动模型文档(基于JSON Schema)。...测试基于 requests 的客户端。 CORS,GZip,静态文件,流式响应。 会话和 Cookie 支持。 100% 的测试覆盖率。 100% 类型注释的代码库。 零硬依赖性。

    3K20

    【云+社区年度征文】全面拥抱FastApi-优雅的处理HTTPException

    为了直观友好的给客户端返回错误, 在 FastApi 中一般使用 HTTPException from fastapi import FastAPI, HTTPException app = FastAPI...注意:这个 json 由 FastAPI 自动处理并转换的。...自定义异常类 和 starlette 源码中处理异常一样,你也可以自定义一个异常处理类 定义的异常处理类,使用@app.exception_handler() 支持在 FastAPI 中全局使用该异常类...,并事先定义好状态码 418 的提示错误 重写默认异常类 FastAPI 有许多的默认异常处理类 这些处理程序负责在引发 HTTPException 和请求包含无效数据时返回默认 JSON 响应 比如下面的路由是只支持...return {"item_id": item_id} 当从客户端传过来的 item_id 为非 int 类型的时候,便返回默认的 JSON 响应 你可以重写这些默认的异常处理类,变成自定义的。

    2K40

    FastAPI 构建 API 服务,究竟有多快?

    FastAPI 这么强悍,有必要研究和使用,因为无论做开发,还是做算法,API 服务真的太重要,太重要,尤其是大厂,离不开 API 接口。...Pydantic 做类型强制检查 FastAPI 基于 Pydantic ,Pydantic 主要用来做类型强制检查。参数赋值,不符合类型要求,就会抛出异常。...对于 API 服务,支持类型检查非常有用,会让服务更加健壮,也会加快开发速度,因为开发者再也不用自己写一行一行的做类型检查。...首先 pip install pydantic 然后,使用 Pydantic 做强制类型检查。...输入user_id, name 后,点击 Execute, 能看到结果,包括请求的 URL 也能看到,服务器响应前端,返回的结果: FastAPI 基于以上这些强大的优点,相信在实际开发 API 服务时

    2.8K20

    FastAPI – 一个现代高性能Python Web框架及其示例

    FastAPI是一个用于构建API的现代、高性能Python web框架。它使用标准的Python类型提示来支持数据自动验证和API文档自动生成。...FastAPI还使用Python 3.6+的类型提示来声明参数、请求体、响应模型等,而其他框架需要额外的库或插件来实现数据验证和序列化。...此外,FastAPI基于OpenAPI和JSON Schema标准,可以自动生成交互式API文档和多种语言的客户端代码。它是一个微框架,只提供最基本的功能,而其他功能可以通过插件或依赖项来添加。...下面使用FastAPI来写一个示例代码,提供访问google关键词的web服务,需要做以下几个步骤: 导入FastAPI和其他需要的库,如requests。 创建一个FastAPI实例。...在函数中,使用requests库和爬虫代理IP,发送一个带有关键词的请求到Google。 解析请求的响应,并将查询结果返回给客户端。

    95740

    fastapi集成google auth登录 - plus studio

    code=${code} 请求 后端接收授权码,并使用它向 Google 请求访问令牌。 使用此令牌,后端可以从 Google 获取用户信息(如用户名、邮箱等)。 后端检查此用户是否已在数据库中。...后端生成一个会话或令牌(如 JWT),并将其发送回前端。 8. 前端接收令牌 前端接收令牌并存储在本地(如 localStorage、sessionStorage 或 cookie 中)。 9....下面添加测试用户,填入google账号的邮箱即可 保存,在摘要再检查一遍以后保存创建即可。接下来你会看到这样的页面,这样子我们的OAuth就设置好了。...创建凭据 我们下面创建应用,点击凭据 点击创建凭据 选择OAuth客户端ID 选择应用类型web应用 填写名称,已获授权的 JavaScript 来源,已获授权的重定向 URI。...已获授权的重定向 URI 写的是你的重定向地址例如http://localhost:8000/user/auth/google image.png 你会看到这样一个页面,保存你的客户端 ID和客户端密钥

    1.4K10
    领券