新手提问:与 GraphQL API 应该遵循前端应用相同的语言吗?

在现代的前端开发中,GraphQL API 已经成为了一个非常受欢迎的选择。它具有许多优点,例如更好的查询控制、更少的网络请求、更好的类型安全等。然而,对于新手来说,一个常见的问题是:与 GraphQL API 应该遵循前端应用相同的语言吗?

什么是 GraphQL API?

首先,让我们来回顾一下 GraphQL API 是什么。GraphQL 是一种查询语言,用于 API 的设计和查询。与传统的 RESTful API 不同,GraphQL API 允许客户端指定需要的数据,而不是由服务器返回固定格式的数据。这意味着客户端可以在一个请求中获取所有需要的数据,而不需要多次请求。

GraphQL API 与前端应用的语言

现在回到我们的问题:与 GraphQL API 应该遵循前端应用相同的语言吗?答案是:不一定。

GraphQL API 可以使用任何语言来编写。常见的选择包括 JavaScript、Python、Ruby、Go、Java 等等。因此,与前端应用相同的语言并不是必需的。

然而,使用与前端应用相同的语言可能会带来一些优势。例如:

  • 更容易维护:当前端应用和 GraphQL API 使用相同的语言时,代码库将更容易维护。开发人员可以更容易地在两个代码库之间切换,并且可以共享一些工具和库。
  • 更好的类型安全:当前端应用和 GraphQL API 使用相同的语言时,可以使用类型系统来提高类型安全。例如,如果您使用 TypeScript 编写前端应用,并且使用 TypeScript 编写 GraphQL API,则可以共享类型定义并获得更好的类型检查。

示例代码

下面是一个示例代码,演示如何在前端应用和 GraphQL API 中使用相同的语言。我们将使用 TypeScript 编写前端应用和 GraphQL API。

前端应用

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

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

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

GraphQL API

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

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

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

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

在这个示例中,我们定义了一个 User 类型,并在前端应用和 GraphQL API 中使用了它。我们还使用了 Apollo Server 来创建 GraphQL API。注意,我们在前端应用中使用了 fetch 函数来发送 GraphQL 查询。

总结

与 GraphQL API 应该遵循前端应用相同的语言吗?答案是不一定。GraphQL API 可以使用任何语言来编写。然而,使用与前端应用相同的语言可能会带来一些优势,例如更容易维护和更好的类型安全。在实际开发中,您应该根据您的需求来选择最合适的语言。

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