每个 OData Service 都会提供元数据文件?

Every OData Service will provoide metadata document?

我对 OData 服务中的元数据文档有点困惑。 正如 odata-v4.0-part1-protocol 文档提到的,有两个定义明确的资源描述了它的数据模型,一个服务文档和一个元数据文档。

我想知道这是否意味着在开发OData服务时必须同时实现这两个资源,或者开发者只需要自己选择实现其中一个?

非常感谢任何人的帮助。 谢谢

不一定。根据OData V4 spec的“13.1 OData服务一致性级别”:

  • 最低一致性级别 "MAY publish metadata at $metadata according to [OData-CSDL] "
  • 对于中间一致性级别“应该根据 [OData-CSDL] 在 $metadata 发布元数据”
  • 高级一致性级别 "MUST publish metadata at $metadata according to [OData-CSDL]"。

换句话说,这意味着元数据不是 OData V4 服务必须的,但服务文档是必须的。如果你对OData有更深入的了解,有两种OData库——服务器和客户端,OData的元数据文档是为了让高级客户端更多地了解服务(模型、类型等)。因此,是否拥有元数据文档实际上取决于您是否希望与尽可能多的客户交流您的服务。