如何将 OData 配置为在配置了 ODataAttributeRouting 的端点上使用带有 /$query 的 POST?我收到了 404

发布于 2025-01-20 01:20:48 字数 713 浏览 2 评论 0原文

这是 OData AspNetCore 支持的后续内容对于长 URL,使用 $query 不起作用

OData 8.0.4

在启动时,我有 app.UseODataQueryRequest() 我的控制器看起来像

[ODataAttributeRouting]
public class ODataQueryController : Controller
{
    [HttpGet] // not needed, it turns out
    [EnableQuery]
    [Route("Thing")]
    public IActionResult GetThings()
    {
        return Ok(ApplicationContext.Things);
    }
}

,我的 POST 看起来像

POST http://localhost:8080/api/odata/Thing/$query

Request Body: $select=Column
Content-Type: text/plain

,我得到 404

This is a follow-up to OData AspNetCore support for long URLs useing $query is not working.

OData 8.0.4

In startup, I have app.UseODataQueryRequest()
My Controller looks like

[ODataAttributeRouting]
public class ODataQueryController : Controller
{
    [HttpGet] // not needed, it turns out
    [EnableQuery]
    [Route("Thing")]
    public IActionResult GetThings()
    {
        return Ok(ApplicationContext.Things);
    }
}

and my POST looks like

POST http://localhost:8080/api/odata/Thing/$query

Request Body: $select=Column
Content-Type: text/plain

and I get a 404

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

战皆罪 2025-01-27 01:20:48

放置app.useodataqueryrequest() app.userouting()为我解决此问题

startup.cs:

...
app.UseODataQueryRequest();
...
app.UseRouting();
...

Placing app.UseODataQueryRequest() before app.UseRouting() resolved this issue for me

Startup.cs:

...
app.UseODataQueryRequest();
...
app.UseRouting();
...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文