gpt4 book ai didi

c# - OData超媒体

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:40 26 4
gpt4 key购买 nike

很久以前,当我第一次查看 OData 响应负载时,GET 请求包含指向其他实体或实体集的链接(例如,OrderHeader 实体将包含指向订单的 OrderDetails 的链接)。我认为正确的说法是超媒体。

今天我再次检查 OData 并使用 ASP.Net Web API 构建了一个 OData v4 服务,但是有效负载中没有返回此类超媒体链接。为什么是这样?是不是因为有效负载现在是 JSON(而几年前我看的时候是 XML)?有什么方法可以在有效载荷中包含超媒体链接吗?

这是我构建的。我有一个名为 Proposition 的实体:

public class Proposition
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public ICollection<Event> Events { get; set; }
}

请注意,一个命题有一个事件集合。我希望当我通过 OData 端点请求一个提案时,我会得到一个指向事件资源的链接,但我没有: enter image description here

我在 OData JSON Format Version 4.0 Plus Errata 02#JSON Format Design 找到了一些信息这表明将 $format=odata.metadata=full 添加到 URL 将返回我需要的内容:

The odata.metadata=full format parameter indicates that the service MUST include all control information explicitly in the payload

( odata.metadata=full )

但我已经尝试过了,但我没有取回任何此类元数据(这次是 Postman 的屏幕截图): enter image description here postman 告诉我返回的是 odata.metadata.minimal:

enter image description here

为什么忽略我对完整元数据的请求?

最佳答案

您应该能够将 $format=application/json;odata.metadata=full 添加到您的查询字符串以通过 GET 请求实现此目的。

关于c# - OData超媒体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30357351/

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