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

网站推广途径和要点有哪些青岛网络推广公司

网站推广途径和要点有哪些,青岛网络推广公司,做网站前期需要准备什么,室内装修设计软件下载文章目录 01 前言02 路径传参方式添加API Key2.1 完整代码2.2 请求示例2.3 swagger文档测试 03 请求头Header方式传入API Key(推荐)3.1 完整代码3.2 请求示例3.3 swagger文档测试 01 前言 FastAPI,如其名所示,是一个极为高效的框…

文章目录

  • 01 前言
  • 02 路径传参方式添加API Key
    • 2.1 完整代码
    • 2.2 请求示例
    • 2.3 swagger文档测试
  • 03 请求头Header方式传入API Key(推荐)
    • 3.1 完整代码
    • 3.2 请求示例
    • 3.3 swagger文档测试


01 前言

FastAPI,如其名所示,是一个极为高效的框架,特别适用于构建 API 后端服务。而在与其他网站的 API 接口进行交互时,API Key认证是一种非常普遍的安全机制。典型的例子是ChatGPT的接口,我们需要申请一个专属的API Key才能发起有效的请求。

虽然我们可以直接在定义接口时自定义接收参数,但这种方式需要在每个接口都增加相同的代码,十分不优雅,且该方式不支持FastAPI自带的swagger文档友好显示。

本文将介绍在FastAPI框架中如何为我们的后端服务添加API Key认证,且使用两种不同的方案实现:一种是将 API Key 放在 URL 请求路径中,另一种是将 API Key 放在请求头(Header)中。

02 路径传参方式添加API Key

2.1 完整代码

import uvicorn
from fastapi import HTTPException, status, Security, FastAPI
from fastapi.security import APIKeyQuery# 可用的API_KEYS列表
API_KEYS = ["9d207bf0-10f5-4d8f-a479-22ff5aeff8d1", ...]# 创建一个用于解析路径传参的对象
api_key_query = APIKeyQuery(name="api-key", auto_error=False)# 定义一个获取请求中的api-key的函数 该函数接收一个上一步创建的对象封装
def get_api_key(api_key: str = Security(api_key_query)) -> str:if api_key in API_KEYS:return api_keyraise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid or missing API Key")app = FastAPI()@app.get("/public")
def public():"""一个公共接口 无需api-key即可访问"""return "Public Endpoint."# 需要api-key的接口,注意接受参数的写法。
@app.get("/private")
def private(api_key: str = Security(get_api_key)):"""一个私有端点 需要在请求url中传入api-key"""return f"Private Endpoint. API Key: {api_key}"if __name__ == "__main__":uvicorn.run(app, host="0.0.0.0", port=8000)

2.2 请求示例

启动应用后,可以使用如下请求来访问“私有端点”:

GET http://localhost:8000/private?api-key=9d207bf0-10f5-4d8f-a479-22ff5aeff8d1

2.3 swagger文档测试

访问接口文档,可以看到有很好的支持。

点击Authorize按钮,填入api-key,这样调用需要认证的接口时就可以自动带上api-key了。

在这里插入图片描述

03 请求头Header方式传入API Key(推荐)

3.1 完整代码

这种方式相对前一种方式会更安全一些,推荐。

"""为请求添加api-key的示例 api-key通过header的方式发送"""
import uvicorn
from fastapi import HTTPException, status, Security, FastAPI
from fastapi.security import APIKeyHeader# 可用的API_KEYS列表
API_KEYS = ["9d207bf0-10f5-4d8f-a479-22ff5aeff8d1", ...]# 创建一个用于解析路径传参的对象
api_key_header = APIKeyHeader(name="api-key", auto_error=False)# 定义一个获取请求中的api-key的函数 该函数接收一个上一步创建的对象封装
def get_api_key(api_key: str = Security(api_key_header)) -> str:if api_key in API_KEYS:return api_keyraise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid or missing API Key")app = FastAPI()@app.get("/public")
def public():"""一个公共接口 无需api-key即可访问"""return "Public Endpoint."# 需要api-key的接口,注意接受参数的写法。
@app.get("/private")
def private(api_key: str = Security(get_api_key)):"""一个私有端点 需要在请求url中传入api-key"""return f"Private Endpoint. API Key: {api_key}"if __name__ == "__main__":uvicorn.run(app, host="0.0.0.0", port=8000)

3.2 请求示例

启动应用后,你可以使用如下 curl 命令来访问“私有端点”:

curl -H "api-key: 9d207bf0-10f5-4d8f-a479-22ff5aeff8d1" http://localhost:8000/private

3.3 swagger文档测试

在这里插入图片描述

在这里插入图片描述

配置完成,一切正常!

(完)

http://www.dinnco.com/news/35242.html

相关文章:

  • 有哪些网站或者公司招募做视频的大型网站建设平台
  • 备案期间需要关闭网站等审核长春百度推广排名优化
  • 做网站需提供什么资料推广软件有哪些
  • 做商城网站那个好互联网营销培训
  • 从做系统网站的收藏怎么找回郑州网络推广
  • 自建网站卖东西电子商务与网络营销教案
  • 小型教育网站的开发与建设论文惠州网站建设
  • 商丘市做1企业网站的公司东莞网站推广企业
  • 做网站工作好么win10优化大师免费版
  • 国际贸易网站哪家好百度付费推广
  • 大连 做网站网站数据统计
  • 聊城做网站费用价格苏州整站优化
  • 在国外做网站怎么做推广让别人主动加我
  • 做动画网站怎么建公司网站
  • 用php做美食网站新东方小吃培训价格表
  • 做义工的靠谱网站注册推广赚钱一个10元
  • 网站开发逻辑关于华大18年专注seo服务网站制作应用开发
  • 牡丹江疫情最新政策厦门seo代理商
  • 海南网站建设哪家不错免费发布信息
  • 做非法集资资讯的网站西安网站建设公司十强
  • 广州营销型网站建设公司哪家靠谱百度收录查询方法
  • 网站建设标语辅导机构
  • 网站中的搜索框怎么做网站seo优化案例
  • 安监网站如何做紧急预案备案推广方案框架
  • 慈溪网站建设哪家好免费网页制作成品
  • 网站如何制作 优帮云会计培训机构排名前十
  • 云空间布置网站百度推广一天烧几千
  • 凡科做网站有什么用广州疫情最新动态
  • 如何搜名字搜到自己做的网站如何在百度上建立网站
  • 无锡网站建设选众鼎色盲