FastAPI 学习之路(十三)Cookie 参数,Header参数

简介: FastAPI 学习之路(十三)Cookie 参数,Header参数

系列文章:

  FastAPI 学习之路(一)fastapi--高性能web开发框架

  FastAPI 学习之路(二)

  FastAPI 学习之路(三)

  FastAPI 学习之路(四)

  FastAPI 学习之路(五)

     FastAPI 学习之路(六)查询参数,字符串的校验

  FastAPI 学习之路(七)字符串的校验

   FastAPI 学习之路(八)路径参数和数值的校验

  FastAPI 学习之路(九)请求体有多个参数如何处理?

  FastAPI 学习之路(十)请求体的字段

     FastAPI 学习之路(十一)请求体 - 嵌套模型

     FastAPI 学习之路(十二)接口几个额外信息和额外数据类型


我们先来看下如何获取Header参数。代码实现


from typing import Optional
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
def read_items(user_agent: Optional[str] = Header(None)):
    return {"User-Agent": user_agent}


我们看下接口请求


image.png


这样我们在请求的时候就可以获取接口的请求参数了,我们可以在这里做一些特殊的处理。后续在项目的中增加。


       我们看下如何实现带cookie参数。


from typing import Optional
from fastapi import Cookie, FastAPI
app = FastAPI()
@app.get("/items/")
def read_items(ads_id: Optional[str] = Cookie(None)):
    print(ads_id)
    return {"ads_id": ads_id}


其实也是很简单的,我们这里请求下看下。


image.png


我们简单的做了一个请求。


       这样我们在后续的请求中,我们可以对于header或者cookie做特殊的处理。


       我们写一个简单的demo。我们要求header的必须有token且token必须是456,没有返回无权限,cookie必须有一个name,且等于123,否则返回认证失败。


       我们看下如何实现呢


from typing import Optional
from fastapi import Cookie, FastAPI,Header
app = FastAPI()
@app.get("/items/")
def read_items(name:  Optional[str] = Cookie(None),
               token: Optional[str] =  Header(None)):
    if token is None or token!='456':
        return '无权限'
    if name is None or name !="123":
        return  "认证失败"


我们看下接口请求


image.png


我们看下不带token


image.png


token不等于456


image.png


我们看下cookie 中的name不等于123,token正确


image.png


接口可以正常返回。

相关文章
|
6月前
|
安全 搜索推荐 JavaScript
和Cookie相关的Header 字段有哪些?
和Cookie相关的Header 字段有哪些?
|
存储 JSON 安全
Gin 学习之 cookie 读写
Gin 学习之 cookie 读写
71 0
|
数据采集 JSON JavaScript
全面拥抱FastApi —三大参数及验证
全面拥抱FastApi —三大参数及验证
|
1月前
|
缓存 Java Spring
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
文章比较了在Servlet和Spring Boot中获取Cookie、Session和Header的方法,并提供了相应的代码实例,展示了两种方式在实际应用中的异同。
149 3
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
|
3月前
|
存储 JavaScript 前端开发
学习vuex和localstorage . cookie的作用与区别
探讨Vuex、LocalStorage与Cookie:三种关键技术在现代Web开发中的角色。Vuex作为Vue的状态管理工具,提供集中、响应式且可预测的状态变更机制,适用于复杂应用。LocalStorage为客户端提供大容量、持久化的数据存储方案,适合保存用户偏好等静态信息。Cookie则擅长会话跟踪与认证管理,数据虽小却能在客户端与服务器间传递。每种技术针对不同场景各有优势,合理选用是关键。
|
3月前
|
开发框架 JSON API
Python中FastAPI项目使用 Annotated的参数设计
Python中FastAPI项目使用 Annotated的参数设计
|
5月前
|
JSON 前端开发 Java
Spring第一课,了解IDEA里面的文件,回顾Cookie和Session,获取Session,Cookie,Header的方式
Spring第一课,了解IDEA里面的文件,回顾Cookie和Session,获取Session,Cookie,Header的方式
|
6月前
|
存储 网络协议 测试技术
【如何学习Python自动化测试】—— Cookie 处理
【如何学习Python自动化测试】—— Cookie 处理
|
6月前
|
Python
Fastapi进阶用法,路径参数,路由分发,查询参数等详解
Fastapi进阶用法,路径参数,路由分发,查询参数等详解
341 1
|
6月前
|
JSON 前端开发 Java
什么是请求参数、表单参数、url参数、header参数、Cookie参数?一文讲懂
什么是请求参数、表单参数、url参数、header参数、Cookie参数?一文讲懂
157 0