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

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

【问题讨论】:

    标签: node.js reactjs mongodb graphql apollo-server


    【解决方案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
    猜你喜欢
    • 2020-10-07
    • 2021-11-14
    • 1970-01-01
    • 2020-09-03
    • 2017-02-05
    • 2021-05-08
    • 2016-03-24
    • 1970-01-01
    • 2020-03-11
    相关资源
    最近更新 更多