1

我有一些使用 GOT 查询 graphQL 端点的代码:

// set up params for call to weather cache 
    const queryQL = `
      query weather {
        weather(where: {idLatLong: {_eq: "${latLong}"}}) {
          id
          idLatLong
          updated_at
          lat
          long
          requestedByUserId
          data
          created_at
        }
      }
    `
    const query = {query: queryQL};
    const options = {
      headers: {
        'X-Hasura-Admin-Secret': process.env.HASURA_KEY
      },
      responseType: 'json'
    }

    // see if there's an existing record for the lat long
    try {
      const response = await got.post(process.env.GQL_ENDPOINT, query, options);
      console.log('query weather hasura');
      console.log(response.body);
    } catch(error) {
      console.log(error);
    } 

我收到了 Hasura 的回复{"errors":[{"extensions":{"path":"$","code":"invalid-headers"},"message":"Missing Authorization header in JWT authentication mode"}]}

如何查看 GOT 发送到 GQL 端点的内容?仅供参考,此调用在 GQL 控制台和 Postman 中都可以正常工作。

4

1 回答 1

2

got()库具有允许您查看它即将发送的标头的钩子。这是一个示例,您可以运行然后将相同的内容插入到您的代码中:

const got = require('got');

got("http://www.google.com", {
    hooks: {
        beforeRequest: [function(options) {
            console.log(options);
        }]
    }
}).then(result => {
    let i = 1;
}).catch(err => {
    console.log(err);
});

您还可以使用Wireshark之类的网络分析仪将其放在您的客户端计算机上并观察实际的网络流量。

于 2020-04-09T01:01:09.247 回答