用于参考操作的Odata路由,缺少文档

时间:2018-10-17 10:42:11

标签: asp.net-mvc .net-core odata

使用Odata 7.0.1在控制器上进行链接创建和删除时遇到问题

根据http://odata.github.io/WebApi/#03-01-routing-abstract,以下嵌板应自动创建路线(部分查询,创建和删除链接)

在名为CreateRef的方法上进行Http POST和PUT

控制器上的方法签名进一步显示为

// POST /odata/Products(1)/Supplier/$ref
public HttpResponseMessage CreateLink(int key, string navigationProperty, [FromBody] Uri link)

对于删除,它是:

// DELETE /odata/Products(1)/Supplier/$ref
public HttpResponseMessage DeleteLink(int key, string navigationProperty, [FromBody] Uri link)

模板为

HTTP DELETE DeleteRef

我有一个客户端集成测试,它会生成以下形式的链接

DELETE http://localhost/Building(007c3552-43da-44c4-bf8f-b5221553c484)/UsageTypes/$ref?$id=UsageType(18)

对我来说很好。

可悲的是,我总是遇到路由错误,“未找到WebRequestException”。

我都尝试过

[HttpDelete]
public async Task<IActionResult> DeleteRef(Guid key, String navigationProperty, [FromBody] Uri link) {
    return Ok();
}

[HttpDelete]
public async Task<IActionResult> DeleteLink(Guid key, String navigationProperty, [FromBody] Uri link) {
    return Ok();
}

我在做什么错了?

请注意,Odata在一般情况下有效-我们具有正确生成的用于路由的各个对象,函数和操作的get和put和post方法。目前,只有链接似乎失败了(这是我们现在投入生产的新部分,以淘汰旧的基于REST的API)。

0 个答案:

没有答案