【问题标题】:Http request with Hasura graphql not workingHasura graphql 的 Http 请求不起作用
【发布时间】:2021-04-11 15:00:27
【问题描述】:

我是 Hasura 的新手,在尝试通过 http 请求提取数据时需要一些帮助。

以下是我的请求,但我认为我的语法不正确。我需要传递一个json对象,其中键是查询,值是代码块。我该怎么做?

肖恩

query MyQuery {
  t_user(where: {id: {_eq: "2"}}) {
    name
    id
  }
}

【问题讨论】:

    标签: rest graphql httprequest hasura


    【解决方案1】:

    您应该发布您的问题并提供更多详细信息。就像向 Hasura graphql 端点发出请求的实际代码

    这是一个使用 Browser fetch api

    的示例请求
    const query = `query MyQuery {
      t_user {
        name
        id  
      }
    }`;
    
    fetch('https://lasting-grub-95.hasura.app/v1/graphql', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            'x-hasura-admin-secret': 'my-secret'
        },
        body: JSON.stringify({
            query
        })
    })
        .then(res => res.json())
        .then(res => {
            console.log('Hasura response: ', res);
        })
        .catch(err => {
            console.error(err);
        })
    

    admin-secret 转到 Hasura Cloud 的项目页面。在那里你会看到你的项目列出了必要的细节,包括Admin Secret

    【讨论】:

    • 刚刚编辑了我的问题。我正在尝试在邮递员中对此进行测试。任何帮助将不胜感激。
    【解决方案2】:

    我在一点帮助下找到了答案。我需要将我的查询放入一个 JSON 对象中。所以我在控制台中的查询是这样的: query MyQuery { t_user(where: {id: {_eq: "2"}}) { name id } }

    我需要它看起来像这样: {"query":"query MyQuery {\n  t_user(where: {id: {_eq: \"2\"}}) {\n    name\n    id\n  }\n}\n","variables":null,"operationName":"MyQuery"}

    【讨论】:

    • 值得一提的是,除了像这样手动构建请求之外,还有更好的工具可用于向 GraphQL 服务器发出请求。如果您只是在玩,这可能没问题,但我强烈建议您查看 Apollo Client 或 URQL 之类的东西,具体取决于您正在构建的应用程序类型
    • 感谢@JesseCarter。在这种情况下,我只需要针对Integromat 中的场景的 Post HTTP 请求。我的下一步是 React 应用程序中的 Apollo 客户端。希望学习曲线不会太陡峭。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 2018-04-24
    • 2016-09-21
    • 1970-01-01
    • 2014-03-31
    相关资源
    最近更新 更多