O365 MS Graph Unified API - 如何获取有关实体属性的信息

O365 MS Graph Unified API - how to get information on entity properties

我知道可以通过 OData $metadata 检索 edmx 格式的整个元数据结构。但是这些元数据的 EntityType 属性 项目缺少一些有趣的东西——例如,如果 属性 是可过滤的、可更新的,或者 mandatory/optional 用于创建新对象。也许一些描述也会派上用场。

是否可以通过 API 检索此信息?

您所要求的大部分内容都可以通过使用 OData Capabilities 词汇注释在 $metadata 中表达(http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/vocabularies/Org.OData.Capabilities.V1.xml). There is a limited set of such annotations already present in https://graph.microsoft.com/v1.0/$metadata,例如:

<Annotations Target="microsoft.graph.directoryObject">
 <Annotation Term="Org.OData.Capabilities.V1.FilterRestrictions">
  <Record>
   <PropertyValue Bool="false" Property="Filterable"/>
  </Record>
 </Annotation>
</Annotations>

以后会增加更多这样的注释。

强制属性通常标有 Nullable="false" 属性 (http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part3-csdl/odata-v4.0-errata02-os-part3-csdl-complete.html#_Toc406397955)