使用 GraphQL 时,如何避免遗留数据库架构与数据结构之间的冲突

GraphQL 是一种用于 API 的查询语言,它使前端开发者能够更有效地与后端 API 通信并获取需要的信息,而不需要获取多余的数据。GraphQL 这种新的查询方式给予了前端开发者更多的自主选择权,不再需要仅仅通过后端 API 传输的数据渲染页面。然而当数据库架构和需求不一致时可能会导致一些问题。在本文中,我们将讨论如何在使用 GraphQL时避免遗留数据库架构和数据结构之间的冲突。

解决方案

使用 GraphQL 时,开发者需要了解这种查询方式与传统查询方式的区别。GraphQL 查询基于一个强类型系统,因此在实施查询时,我们应该遵守以下几个原则:

1. 明确了解数据请求

在日常开发中,应该将每个查询的请求都详细记录下来。只有在了解每个请求的数据要求后,才能更好地为每个请求确定数据结构,这将有利于与数据库的正确互动。

-
  -------- ------ - -- -------------
    ----
    -----
    -----
    ------- -
      ----
      ----------
      -------
    -
  -
-

2. 了解类型检查

GraphQL 查询与传统查询方式的一个区别就是 GraphQL 系统能够实现类型检查,这意味着我们需要始终按照指定的查询格式和数据结构进行查询请求。这种方式看起来比较严格,但是 GraphQL 系统在概念上非常清晰,因此利用此特性来检查查询的类型和格式是非常有用的。

下面就是一个 GraphQL 查询与类型检查的示例:

-
  -------- ------ - 
    ---- -- -------
    ----- -- -------
    ----- -- -------
    ------- -
      ---- -- -------
      ---------- -- -------
      ------- -- -------
      ----- -- ----------
    -
  -
-

上面的例子中,state 是可存在可不存在的。这种方式在实际开发中非常方便,因为我们可以自定义需要的字段而无需从 API 中获取所有数据。

3. 熟悉 GraphQL 的属性

如果前端开发人员要开始使用 GraphQL,则需要熟悉 GraphQL 的属性和其他概念。GraphQL 包含以下核心概念:

  • Query:用于获取数据的 GraphQL 语句。
  • Mutation:用于修改数据的 GraphQL 语句。
  • Fields:用于定义需要获取的数据项。
  • Types:定义数据类型的对象。
  • Arguments:用于传递数据到 GraphQL 语句。

在 GraphQL 中使用类似下面的片段:

----- --------------- ----- ---- -
   -------- -------- -
      ----
      -----
   -
-

上述片段中,getUser 获取 userID 参数传递的用户数据。user 应该被定义为 type 的一个属性,以便在请求操作时指定返回类型。

结论

尽管 GraphQL 系统会更改数据库操作的开发方式,这种查询方式在实现时通常会遇到较少的数据结构冲突。如果开发人员遵守上述建议、了解 GraphQL 全部属性和相关概念、记录每个请求的数据要求,那么我们就可以更好地使用 GraphQL 并避免遗留数据库架构与数据结构之间的冲突。此外,所有的前端程序员都应该积极了解及运用 GraphQL,这将有助于改进查询技能并最大化数据人机交互的效果。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/672c644addd3a70eb6d7e47f