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

仅在FastAPI Swagger UI设置默认limit值,不影响编程调用

解决方案

要实现Swagger UI默认填充limit=100,同时让编程调用(如requests)默认不限制返回数量,你可以通过给OpenAPI schema指定默认值,同时保持函数参数的默认值为None来实现。具体步骤如下:

  1. 将limit参数的函数默认值设为None,确保编程调用时不传该参数则不限制结果数量。
  2. 通过Query的schema参数给OpenAPI文档添加default: 100,让Swagger UI自动填充这个值到输入框中。

修改后的代码示例:

from typing import Optional, List
from fastapi import Query, Depends, APIRouter
from sqlalchemy.orm import Session

# 假设你已定义了SomeSchema、SomeModel和get_db
@router.get("/some_endpoint", response_model=List[SomeSchema])
def read_some_endpoint(
    name: str,
    limit: Optional[int] = Query(
        None,
        description="Limit the number of results to return",
        schema={"default": 100}  # 仅在Swagger UI中生效的默认值
    ),
    db: Session = Depends(get_db),
):
    """
    Query database 
    """
    query = db.query(SomeModel).filter(SomeModel.name == name)
    if limit:
        query = query.limit(limit)

    results = query.all()
    return results

效果说明

  • Swagger UI体验:点击「Try it out」时,limit输入框会自动填充100,用户可以直接执行请求,也可以修改这个值。
  • 编程调用体验:使用requests等工具调用时,如果不传limit参数,后端会收到limit=None,此时会返回符合条件的所有结果;若需要限制数量,手动传入limit参数即可。

内容的提问来源于stack exchange,提问作者Anup Jonchhe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:38:13