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

使用aiohttp创建含路径参数与查询字符串的GET端点遇405错误求助

问题分析与解决方案

错误原因

你当前的路由把type定义成了路径参数(URL路径里的{type}),但你期望的type是查询字符串参数(URL中?后的type=mini)。这导致实际请求的URL和路由规则不匹配,服务器找不到对应的GET处理逻辑,因此返回405错误。

修正步骤

1. 修改路由定义

将variation.py中的路由规则里的/{type}移除,正确的路由应该是:

# app/http/routes/v1/variation.py
routes = [
    get(f"/{version}/{path}/download/{{document_id}}", readvariationController.handle)
]

这样路由就匹配http://localhost:3099/v1/storage/download/112/这类路径,同时允许携带查询参数type。

2. 在控制器中获取查询参数

在readvariationController.handle方法里,通过request.query对象获取type的值:

async def handle(request):
    # 获取路径参数document_id
    document_id = request.match_info.get('document_id')
    # 获取查询参数type,可根据需求设置默认值
    type_param = request.query.get('type', 'default')
    
    # 后续从数据库获取对应格式图片的逻辑
    # ...

验证

修改后,请求http://localhost:3099/v1/storage/download/112/?type=mini就能正确匹配到GET端点,不会再返回405错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:52:20