首页 > 解决方案 > MSGraph API 的代理

问题描述

我正在尝试创建一个适配器(将充当传递的 WEB API)来调用 MS Graph API 来管理我的 Active Directory。

像应用程序和用户这样的 AD 对象将被定制以满足我们的应用程序需求(删除一些属性,添加一些扩展属性等),并且在调用 MS Graph API 之前和之后,从我们的应用程序特定对象到 AD 对象的转换将发生在我们的适配器层中.

MS Graph APIs当前支持 OData 查询。应用程序和用户将按页面读取。如果我必须在通过 Web API 层中提供相同的 OData 选项,我该怎么做?

IE

如何支持 API B 中的 OData 选项?

提前致谢。

标签: restasp.net-web-apiodatamicrosoft-graph-api

解决方案


好吧,我不确定我是否正确地回答了您的问题,但据我了解,您只想将 API 调用代理到 ​​MS Graph 并即时对响应进行一些更改。

OData 查询只是简单的查询参数(请参阅OData 教程)。因此,基本上,您只需在代理中获取这些查询参数并将它们转发到 MS Graph。然后,您将获得的响应将与原始查询相符。

但是,根据您处理数据的方式,您最终可能不符合用户查询。例如:

  • 用户进行了$select(Id)查询,但您的逻辑添加了自定义属性Foo。用户只是想要Id,但您还是添加Foo了。
  • 用户进行了$orderby Name asc查询,但您的逻辑修改了 property Name。它可能不会按照您的逻辑排序。
  • 用户想要对该属性进行$filter查询。FooMS Graph 会抱怨,因为它不知道该Foo属性。
  • 等等。

如果您想处理这种情况,那么您将不得不解析不同的 OData 查询并相应地调整您的逻辑。$orderby, $top/ $skip, $count,$expand并且$select应该很简单;$filter并且$search需要更多的工作。


推荐阅读