首页 > 解决方案 > 当参数被编码时,Fastapi 的行为不同

问题描述

我是 Fastapi 的新手,我正在尝试这样实现一个新的端点:

@router.get("/{id_prevision}/x_operations",
            dependencies=[Depends(app.users.current_user(active=True))],
            response_model=List[PrevOpeSchema])
def list_x_operations(id_prevision: str, request: Request, response: Response,
                      db: Session = Depends(get_db)):
    x_ope = (
        db.query(PrevOpe)
        .filter(
            PrevOpe.id_prevision == id_prevision
            and PrevOpe.flag_x is True
        )
        .join(Operation, Operation.id_operation == PrevOpe.id_operation)
    )

    results, headers = get_paginated_sql_results(request, x_ope, PrevOpe)
    response.init_headers(headers)
    return results

这个实现在 fastapi 浏览器界面上运行良好(只要我注释依赖行)。

但是,当我尝试此实现时,我将删除id_prevision并对其进行编码。它不起作用。

@router.get("/x_operations/",
            # dependencies=[Depends(app.users.current_user(active=True))],
            response_model=List[PrevOpeSchema])
def list_x_operations(request: Request, response: Response,
                      db: Session = Depends(get_db)):
    x_ope = (
        db.query(PrevOpe)
        .filter(
            PrevOpe.id_prevision == "1"
            and PrevOpe.flag_x is True
        )
        .join(Operation, Operation.id_operation == PrevOpe.id_operation)
    )

    results, headers = get_paginated_sql_results(request, x_ope, PrevOpe)
    response.init_headers(headers)
    return results

我得到401 unauthorized回应

快速 API 响应

我试图调试问题,但 FASTapi 的短暂错误无济于事

标签: pythonoauthfastapi

解决方案


推荐阅读