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

如何在Fast-Endpoints的201响应中用路径参数设置Location头?

解决Fast-Endpoints中SendCreatedAtAsync生成路径式Location头的问题

要生成api/foo/bars/12345这种路径参数形式的Location头,按以下步骤操作即可:

  • 第一步:配置目标端点的路由为路径参数模式
    确保你的GetUser.Endpoint路由定义里,把id设为路径参数而非查询参数:

    public class GetUser : Endpoint<GetUserRequest, UserResponse>
    {
        public override void Configure()
        {
            Get("api/foo/bars/{id}"); // 用{id}定义路径参数
            // 其他端点配置逻辑
        }
        // 端点处理逻辑...
    }
    
  • 第二步:正常调用SendCreatedAtAsync方法
    保持你原本的调用代码不变,框架会自动匹配路径参数并生成对应的Location格式:

    await SendCreatedAtAsync<GetUser.Endpoint>(new { id = response.Id }, response);
    

如果目标端点原本的路由是查询参数模式(比如api/foo/bars?id={id}),框架才会生成带查询参数的Location。只要切换成路径参数路由,就能得到你想要的格式。

要是需要完全自定义Location头,也可以跳过框架的封装方法,手动构建响应:

Response.Headers.Location = $"api/foo/bars/{response.Id}";
await SendAsync(response, 201);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:07:04