多端点 Graphql

Posted

技术标签:

【中文标题】多端点 Graphql【英文标题】:Multiple endpoints Graphql 【发布时间】:2020-10-06 20:40:07 【问题描述】:

我正在开发一个在 Web 浏览器上显示 .xml 和 .txt 文件列表的项目。使用 MERN Graphql 堆栈,是否可以有两个不同的端点,例如 http://localhost/xml 和 http://localhost/txt。大多数文档都说 Graphql 使用单个端点“/graphql”因此询问。

【问题讨论】:

【参考方案1】:

您可以启动两个 GraphQL 服务器以在一个 Express 应用程序中为两个端点提供服务。但在您的特定用例中,不要;这是一种反模式。 GraphQL API 旨在基于一个单一的根端点。所有查询的详细信息都应由选择集和/或参数表示,而不是由 REST API 典型的端点表示。在您的情况下,正确的 GraphQL 查询应如下所示:

 query 
   listFiles(ext: "xml")   
     name
     modified
   
 

您的架构可能如下所示:

type Query 
  listFiles(ext: String): [File]

然后使用listFiles 解析器执行逻辑以根据给定参数检索列表。

【讨论】:

如果 Graphql 服务于一个端点,那么我将如何在我的网页上分离 xml 和 txt 文件? @user210912 listFiles(ext...) 表示 listFiles 解析器将有一个 [passed as 2nd arg] 参数/arg 命名为 ext

以上是关于多端点 Graphql的主要内容,如果未能解决你的问题,请参考以下文章