Как отобразить данные API, используя несколько возвращенных данных из нескольких API? - PullRequest
0 голосов
/ 08 ноября 2019

Я успешно выяснил, как отображать отдельные данные API, но столкнулся с проблемой. - Я пытаюсь использовать следующий API для возврата данных «PersonID: 2117», используя «ID: 79», показанный в следующем примере API.

Для этого используются два следующих API.

  • используется для возврата «ID: 79» для дальнейшего использования для получения «PersonID: 2117» в рассматриваемом API.
  • используется для получения «ConstituencyCode: S16000113» для доступа к «ID: 79» ранее.

Извините, я застрял и понятия не имею, что я сделал неправильно,Ниже приведена моя попытка кода, я надеюсь, что это полезно и хорошо объяснил.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

          let response1 = await $.ajax({
            method: 'GET',
            url: 'https://api.postcodes.io/scotland/postcodes/FK15LD',
          });
          let response2 = await $.ajax({
            method: 'GET',
            url: 'https://data.parliament.scot/api/constituencies'
          });
          let response3 = await $.ajax({
            method: 'GET',
            url: 'https://data.parliament.scot/api/MemberElectionConstituencyStatuses'
          });
          const result = response3.find(item => item.ID === response2.result.ConstituencyCode === response1.result.codes.scottish_parliamentary_constituency)
          console.log(result.ID);
        })();

1 Ответ

1 голос
/ 08 ноября 2019

Мне удалось получить результаты по вашим $.ajax запросам.

let response1 = $.ajax({
  method: 'GET',
  url: 'https://api.postcodes.io/scotland/postcodes/FK15LD',
});

let response2 = $.ajax({
  method: 'GET',
  url: 'https://data.parliament.scot/api/constituencies'
});

function response3(id) {

  return $.ajax({
    method: 'GET',
    url: 'https://data.parliament.scot/api/MemberElectionConstituencyStatuses/' + id
  });
}

let resp3 = response3(2);
resp3.then(function(res3) {
  console.log(res3);
});

// Or
// I'm not sure where you want to get the ID from for your third request, but

response1.then(function(res1) {
  // do something with res1
  response2.then(function() {
    // do something with res2
    let resp3 = response3(2); // or response3(res2[0].id);
    resp3.then(function(res3) {
      // do something with res3
      console.log(res3);
    });
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...