gpt4 book ai didi

c# - 带有可选查询字符串的 API 正在丢失路由值

转载 作者:行者123 更新时间:2023-11-30 16:39:37 28 4
gpt4 key购买 nike

我想要一个带有 Id 的 WebAPI 路径,还有一个可选的查询。

所以,通常,客户端会发送:

http://localhost:49487/api/template/5b31b31c-ecd9-4e7a-bcdb-1c263399c86f

但有时,我需要在负载中返回一些额外的细节。所以我希望他们发送:

http://localhost:49487/api/template/5b31b31c-ecd9-4e7a-bcdb-1c263399c86f?IncludePreview=true

我的 .Net Web API Controller enpoint 是这样定义的,并处理第一种情况。

[Route("{Id}"), HttpGet]
public IActionResult GetTemplate(Guid Id, bool IncludePreview = false)

但是一旦我发送了带有查询字符串的第二个版本,api Controller 就会触发(我在上面设置了一个断点),但是,Id 始终是 Guid.Empty。

如何让我的 API 方法接受两个版本?或者我是否需要为两个版本创建一个单独的端点?

最佳答案

您正在将 Include Preview bool 值指定为固定值。因此,即使您的调用在 GetTemplate 方法中捕获了 IncludePreview=true,它也会重新分配。请尝试使用可空的 bool 值,并将“null”作为指定值。

public IActionResult GetTemplate(Guid Id, bool? IncludePreview=null)

关于c# - 带有可选查询字符串的 API 正在丢失路由值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52801507/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com