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


接口可以正常返回。

相关文章
|
3月前
|
安全 搜索推荐 JavaScript
和Cookie相关的Header 字段有哪些?
和Cookie相关的Header 字段有哪些?
|
6月前
|
存储 JSON 安全
Gin 学习之 cookie 读写
Gin 学习之 cookie 读写
30 0
|
8月前
|
数据采集 JSON JavaScript
全面拥抱FastApi —三大参数及验证
全面拥抱FastApi —三大参数及验证
|
3月前
|
JSON 前端开发 Java
什么是请求参数、表单参数、url参数、header参数、Cookie参数?一文讲懂
什么是请求参数、表单参数、url参数、header参数、Cookie参数?一文讲懂
|
10月前
|
存储 缓存 负载均衡
我在学习Nginx的时候认识的cookie和session,有什么不同?
我在学习Nginx的时候认识的cookie和session,有什么不同?
94 0
|
11月前
|
网络安全 Windows
基于fastapi实现6个接口(token拦截, 2个业务流程,接口参数依赖校验)已经通过postman测试,记录部署服务器和windows,用于pytest接口自动化框架的接口测试对象
基于fastapi实现6个接口(token拦截, 2个业务流程,接口参数依赖校验)已经通过postman测试,记录部署服务器和windows,用于pytest接口自动化框架的接口测试对象
|
存储 PHP
PHP为什么需要设置session_set_cookie_params()函数来配置session的cookie参数?
PHP为什么需要设置session_set_cookie_params()函数来配置session的cookie参数?
103 0
|
JSON Java 数据格式
浏览器Header和cookie字符串形式转Json
浏览器Header和cookie字符串形式转Json
111 0
浏览器Header和cookie字符串形式转Json
|
存储 安全 前端开发
java学习之浅谈Cookie与Httpsession对象
java学习之浅谈Cookie与Httpsession对象
java学习之浅谈Cookie与Httpsession对象
|
安全 搜索推荐 JavaScript
和Cookie相关的Header 字段有哪些?
大家好,我是阿萨。HTTP相关内容我们学习了Header的字段。常见header 字段解释。今天我们学习下Cookie相关字段。
108 0
和Cookie相关的Header 字段有哪些?