You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

首次使用drf_yasg,咨询OPENAPI的IN_QUERY等选项功能

关于drf_yasg中OpenAPI参数位置选项(IN_QUERY等)的作用说明

这些IN_*常量对应OpenAPI规范里的参数位置字段in,用来指定API参数的传递方式,drf_yasg直接复用了这些定义,下面是常用选项的具体作用:

  • IN_QUERY:参数通过URL查询字符串传递,比如/api/articles?category=tech&limit=5里的category和limit就属于这类。在Swagger文档里会被归类到「Query Parameters」区域,用户可以直接在界面上输入值测试。
  • IN_PATH:参数是URL路径的固定组成部分,比如/api/articles/{article_id}里的article_id,请求时必须替换为具体ID。这类参数默认是必填项,Swagger文档里会把它显示在路径模板中。
  • IN_HEADER:参数通过HTTP请求头传递,比如鉴权用的Authorization头,或者自定义的X-App-Version这类标识头。适合那些不想暴露在URL里的参数。
  • IN_COOKIE:参数通过请求Cookie传递,比如会话验证用的sessionid,常用于需要保持会话状态的接口。
  • IN_FORM:参数通过表单数据(application/x-www-form-urlencoded)传递,一般用于POST/PUT请求的表单提交场景,Swagger里会展示在「Form Data」区域。
  • IN_BODY:参数是请求体的结构化数据(比如JSON),用于传递复杂的对象参数,对应Django REST Framework里的序列化器。Swagger文档会自动渲染请求体的结构示例,方便用户填写测试数据。

在drf_yasg中使用时,需要从对应模块导入这些常量,示例代码:

from drf_yasg.openapi import IN_QUERY, Parameter
from drf_yasg.utils import swagger_auto_schema

@swagger_auto_schema(
    manual_parameters=[
        Parameter('page', IN_QUERY, description='页码', type='integer')
    ]
)
def list_articles(request):
    # 视图逻辑
    pass

内容的提问来源于stack exchange,提问作者Shangazi Mkubwa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:35:19