当前位置: 首页 > news >正文

怎么做国际网站app开发需求

怎么做国际网站,app开发需求,南阳网站建设aokuo,中型网站每天访问量前言 某些情况下,需要向客户端返回错误提示。 这里所谓的客户端包括前端浏览器、其他应用程序、物联网设备等。 需要向客户端返回错误提示的场景主要如下: 客户端没有执行操作的权限客户端没有访问资源的权限客户端要访问的项目不存在等等 … 遇到这些…

前言

某些情况下,需要向客户端返回错误提示。
这里所谓的客户端包括前端浏览器、其他应用程序、物联网设备等。
需要向客户端返回错误提示的场景主要如下:

  • 客户端没有执行操作的权限
  • 客户端没有访问资源的权限
  • 客户端要访问的项目不存在
  • 等等 …

遇到这些情况时,通常要返回 4XX(400 至 499)HTTP 状态码
4XX 状态码与表示请求成功的 2XX(200 至 299) HTTP 状态码类似。
只不过,4XX 状态码表示客户端发生的错误。

使用 HTTPException

向客户端返回 HTTP 错误响应,可以使用 HTTPException

from fastapi import FastAPI, HTTPExceptionapp = FastAPI()items = {"foo": "The Foo Wrestlers"}@app.get("/items/{item_id}")
async def read_item(item_id: str):if item_id not in items:raise HTTPException(status_code=404, detail="Item not found")return {"item": items[item_id]}

触发 HTTPException

HTTPException 是额外包含了和 API 有关数据的常规 Python 异常。
因为是 Python 异常,所以不能 return,只能 raise

如在调用_路径操作函数_里的工具函数时,触发了 HTTPException,FastAPI 就不再继续执行_路径操作函数_中的后续代码,而是立即终止请求,并把 HTTPException 的 HTTP 错误发送至客户端。

在介绍依赖项与安全的章节中,您可以了解更多用 raise 异常代替 return 值的优势。

本例中,客户端用 ID 请求的 item 不存在时,触发状态码为 404 的异常:

    raise HTTPException(status_code=404, detail="Item not found")

响应结果

请求为 http://example.com/items/fooitem_id 为 「foo」)时,客户端会接收到 HTTP 状态码 - 200 及如下 JSON 响应结果:

{"item": "The Foo Wrestlers"
}

但如果客户端请求 http://example.com/items/baritem_id 「bar」 不存在时),则会接收到 HTTP 状态码 - 404(「未找到」错误)及如下 JSON 响应结果:

{"detail": "Item not found"
}

触发 HTTPException 时,可以用参数 detail 传递任何能转换为 JSON 的值,不仅限于 str
还支持传递 dictlist 等数据结构。
FastAPI 能自动处理这些数据,并将之转换为 JSON。

添加自定义响应头

有些场景下要为 HTTP 错误添加自定义响应头。例如,出于某些方面的安全需要。

一般情况下可能不会需要在代码中直接使用响应头。

但对于某些高级应用场景,还是需要添加自定义响应头:

from fastapi import FastAPI, HTTPExceptionapp = FastAPI()items = {"foo": "The Foo Wrestlers"}@app.get("/items-header/{item_id}")
async def read_item_header(item_id: str):if item_id not in items:raise HTTPException(status_code=404,detail="Item not found",headers={"X-Error": "There goes my error"},)return {"item": items[item_id]}

响应结果

HTTP/1.1 404 Not Found
date: Sun, 24 Sep 2023 01:31:18 GMT
server: uvicorn
x-error: There goes my error
content-length: 27
content-type: application/json{"detail":"Item not found"}
http://www.yayakq.cn/news/58618/

相关文章:

  • 宁夏固原建设网站西安百度百科
  • 做电脑壁纸的网站青岛seo整站优化哪家专业
  • 做企业展示型网站微信小程序模板库
  • 广州网站运营十年乐云seo网站开发需要了解的知识
  • 徐州网站建设招聘网sae wordpress升级
  • 优秀htm网站wordpress 禁止过滤
  • wordpress个人网站备案管理应用商店下载安装电脑
  • 彩票网站源码下载python爬虫 wordpress
  • 高清logo网站东莞品牌网站建设多少钱
  • jquery 的网站模板最便宜的企业邮箱多少钱一年
  • 网上做网站兼职萤石云网站开发
  • 青海政企网站建设wordpress 仪表盘
  • wordpress 编辑器漏洞上海市网站seo
  • 做网站360业务网站如何做reference
  • 怎样加强企业网站建设做网站有什么不好
  • 为什么建设网站很多公司没有做网站算新媒体运营吗
  • 开网站做淘宝客高端型网站制作
  • 深圳 企业网站建设计算机网站建设考试试卷
  • 福建:网站建设24小时自助建站
  • wordpress模板编辑搜索引擎优化推广
  • 免费的建站软件有哪些做自媒体的网站
  • 国外设计网站大全新闻类网站开发难点
  • 网站建设与维护教学视频教程360游戏推广平台
  • 温州建设局老网站wordpress支持的语言包
  • 产品推广方案范文商城网站优化
  • word如何做网站链接磁力宅在线搜种子
  • 网站建设包括哪些方面选择题火山软件开发平台官网
  • 厦门市建设工程质量安全协会网站设计软件cad
  • 厦门网站j建设国微 网站建设
  • iis网站权限怎么设置分类信息网站建设模板