rest - MSGraph API 的代理
问题描述
我正在尝试创建一个适配器(将充当传递的 WEB API)来调用 MS Graph API 来管理我的 Active Directory。
像应用程序和用户这样的 AD 对象将被定制以满足我们的应用程序需求(删除一些属性,添加一些扩展属性等),并且在调用 MS Graph API 之前和之后,从我们的应用程序特定对象到 AD 对象的转换将发生在我们的适配器层中.
MS Graph APIs当前支持 OData 查询。应用程序和用户将按页面读取。如果我必须在通过 Web API 层中提供相同的 OData 选项,我该怎么做?
IE
- API A 支持 OData 查询。
- API B 调用 API A 中支持 OData 查询的方法。
- API B 向客户端公开。当客户端使用 OData 从 API B 调用方法时
$Filter
,必须返回结果。
如何支持 API B 中的 OData 选项?
提前致谢。
解决方案
好吧,我不确定我是否正确地回答了您的问题,但据我了解,您只想将 API 调用代理到 MS Graph 并即时对响应进行一些更改。
OData 查询只是简单的查询参数(请参阅OData 教程)。因此,基本上,您只需在代理中获取这些查询参数并将它们转发到 MS Graph。然后,您将获得的响应将与原始查询相符。
但是,根据您处理数据的方式,您最终可能不符合用户查询。例如:
- 用户进行了
$select(Id)
查询,但您的逻辑添加了自定义属性Foo
。用户只是想要Id
,但您还是添加Foo
了。 - 用户进行了
$orderby Name asc
查询,但您的逻辑修改了 propertyName
。它可能不会按照您的逻辑排序。 - 用户想要对该属性进行
$filter
查询。Foo
MS Graph 会抱怨,因为它不知道该Foo
属性。 - 等等。
如果您想处理这种情况,那么您将不得不解析不同的 OData 查询并相应地调整您的逻辑。$orderby
, $top
/ $skip
, $count
,$expand
并且$select
应该很简单;$filter
并且$search
需要更多的工作。
推荐阅读
- python - 在 Sqlalchemy 中导入 create_engine 时出现循环导入错误
- python-3.x - 如何循环遍历 Excel 文件中的 URL?
- javascript - onClick 事件在嵌套的 React / Next.js 组件中不起作用
- java - Getting compatible version issue when running spring boot application however in pom there is only version
- c++ - 为什么我得到零而不是1?
- python - 是否可以在 python 中并行创建字典?
- google-apps-script - UrlFetchApp Token Authorization
- python - Can't use validation error for a form in django
- linux - 按 -name 和 -mtime 查找,不返回任何内容
- java - Pass object from a Class to Activity