Microsoft Graph是尚不了解的Office 365的一项关键平台功能。 Microsoft Graph以Office 365和Microsoft系统管理和身份工具中存储的信息为基础,不仅是在代码中使用该信息的一种方式,而且是一种使用该信息来推断有关该信息的上下文的其他详细信息的方式, 细节可能比基础数据有用 。
Microsoft Graph中存储了很多数据,无论是在个人层面还是在企业层面。 这是一个快速增长的信息源,增加了Teams等新应用程序,并Swift推出了新的API和查询。 微软正在大力鼓励开发人员在其应用程序中使用API,工具和帮助用户构建和测试图查询的工具来使用Microsoft Graph。
查询图数据库不同于SQL或NoSQL
开发人员熟悉标准的SQL和NoSQL查询,以及熟悉的用于构建和测试查询代码的工具,无论是使用Linq内联还是使用ODBC连接器中的原始SQL。 您对SELECT
语句和WHERE
子句很熟悉,几乎很舒服。
GraphQL是基于Web的查询和API工具的家族之一; 在其他RPC和查询域中完成工作的基础上提供的工具,以提供HTTP和JSON工具来处理图数据库中和跨图数据库的查询。 它不像某些RESTful API模型或更现代的gRPC那样复杂,但是它使您可以构造相对复杂的查询,以从整个Office 365工具套件中快速返回JSON数据 。
虽然目前正在采取行动,由Neo4J开发团队领导开发一种新的,更灵活的图形查询API方法 ,但与最初的交付方式还有一定距离。 另一个选择是Gremlin查询引擎和Cypher语言的结合,它更加复杂,并且更适合像Neo4J或Microsoft的Cosmos DB这样的复杂图形数据库。
通过控制自己的平台,Microsoft采用了不同的方法,通过其自己的图形查询API简化了事情,这些API使用REST访问Office 365的基础数据。 尽管该方法限制了可用查询的范围,但它使处理图形数据变得更加容易。
查询Microsoft Graph:Graph Explorer使其更容易
整个Office 365套件只有一个API,而构成平台的所有各种工具和服务的名称空间正在不断增长。 目前有20多个端点,其中包括beta。 尽管Microsoft已设法为其服务在REST URL中建立版本控制,但重要的是要注意当前正在运行的内容,即将发生的事情以及不推荐使用的内容。
这就是Graph Explorer发挥作用的地方。 这是一种用于尝试图形查询的工具,它是一种构造对Office 365 API的适当调用以及尝试使用查询返回的JSON的有用方法。 在浏览Graph API时,您甚至不需要为其提供凭据,因为它适用于一组Office 365租户示例。
图资源管理器:如何在Office 365沙箱中工作
这样的工具(使您可以在沙箱中使用Microsoft Graph)是学习新工作方式的重要组成部分。 通过与样本承租人合作,可以确保您尝试的操作不会影响承租人数据,尤其是如果您正在尝试将数据写入图形的基于PUT
的操作。
通过使用PUT
和GET
处理读取和写入,Microsoft Graph正在使用熟悉的Web概念,从而可以更轻松地接受Microsoft Graph API调用并将其引入您的代码中。 可悲的是,您只能在沙盒租户中试用GET
查询,您需要登录到实时租户以测试更复杂的查询-因此,您可能需要使用示例数据设置一个Development Office 365帐户,以避免影响操作。
一旦能够对自己的数据(实时数据或示例数据)进行查询,就可以使用合适的Microsoft帐户登录Graph Explorer,然后使用Graph Explorer检查针对Office 365租户的查询是否返回了预期的查询数据。 如果查询有效,则可以在您的代码中使用它,使用Graph SDK来传递查询以及反序列化和解析响应。
微软的下一步应该是更好地与Visual Studio集成
遗憾的是,Graph Explorer和开发工具之间没有集成。 这是一个有用的沙箱,但缺少将图形查询引入Visual Studio的简便方法。 是的,您可以剪切和粘贴以将您认为有用的任何查询保存到单独的文档中,但是将Graph Explorer作为Visual Studio扩展可以节省时间。
Microsoft Graph查询可能很复杂,因此构建一个有用的Microsoft Graph API查询库是一个好主意。 与同事共享您开发的任何查询也是值得的,因此您可以在所有应用程序中重用它们。
将Office 365所有属性中的数据视为一个庞大的图形数据库非常有意义。 这是用户,数据,设备以及他们全部工作的上下文之间的复杂关系集。 正如Microsoft在Windows时间线和新的跨设备通知之类的工具中所演示的那样,结果可能是强大的。
但是,可用于构建自己的应用程序的工具虽然可用,但不足以进行大规模开发。 如果Office 365要成为成功的平台,则诸如Graph Explorer之类的工具需要找到通往Visual Studio和Visual Studio Code的方式 。 否则,繁忙的开发人员很有可能不会将其构建到他们的工作流程中。