Как передать параметры строки запроса клиенту AWS API Gateway с помощью Javascript SDK? - PullRequest
1 голос
/ 13 апреля 2019

У меня есть конечная точка, определенная в AWS API Gateway, которая использует лямбда-интеграцию. Функция Lambda ожидает параметры строки запроса, которые будут доступны в переданном ей объекте event.

Мой API на example.execute-api.us-east-1.amazonaws.com/dev/my-resource, и у меня есть параметры строки запроса, такие как foo=test.

Таким образом, полная конечная точка будет

example.execute-api.us-east-1.amazonaws.com/dev/my-resource?foo=test

Я могу посетить эту конечную точку в браузере или запросить ее у почтальона и получить ожидаемый ответ, поэтому я знаю, что API-шлюз настроен правильно. Однако, когда я использую Javascript SDK, я не могу передать параметры строки запроса.

Согласно последней части этой страницы из документов , я должен иметь возможность просто передать объект JSON, который будет интерпретироваться как параметры строки запроса, например:

var apiClient = apigClientFactory.newClient();
var requestParams = {"foo": "test"};
apiClient.myResourceGet(requestParams).then(function(result) {
    // Do something with the response
});

Однако в моем случае requestParams, похоже, игнорируется. В лямбда-функции event имеет пустое поле queryStringParameters. Как передать этой конечной точке ключ / значения, определенные в объекте requestParams в качестве параметров строки запроса?

1 Ответ

0 голосов
/ 13 апреля 2019

поскольку ваша следующая конечная точка передает параметр запроса, вам действительно не нужно json objet

example.execute-api.us-east-1.amazonaws.com/dev/my-resource?foo=test

создать переменную

var test = <assign value>

сейчас

var params = {
                        host: "execute-api.us-east-1.amazonaws.com",
                        path: "/dev/my-resource?foo="+test

                        };

Пример:

var https = require('https');
       exports.handler = (event, context, callback) => {
       var params = {
                    host: "bittrex.com",
                    path: "/api/v1.1/public/getmarketsummaries"

                    };

  var req = https.request(params, function(res) {
    let data = '';
    console.log('STATUS: ' + res.statusCode);
    res.setEncoding('utf8');
    res.on('data', function(chunk) {
        data += chunk;
    });
    res.on('end', function() {
        console.log("DONE");
        console.log(JSON.parse(data));
    });
  });
   req.end();
 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...