Как правильно отформатировать данные, которые я получаю от вызова API - PullRequest
1 голос
/ 23 января 2020

Я прихожу к вам всем в крайнем случае. Так что, по сути, я строю внутреннюю работу для игры на риск, используя jService API . По сути, мне было поручено сделать вызов API для /api/random и собрать 100 идентификаторов категорий в массив. Это нормально, нет проблем.

let categories = [];
let categoryIDs = [];

async function getCategoryIds() {
    const res = await axios.get('http://jservice.io//api/categories?count=100');
    console.log(res.data)
    for (let cat of res.data) {
        categoryIDs.push(cat.id)
    }
    console.log(categoryIDs)
}

Возвращает именно то, что мне нужно. Где я борюсь, так это со второй частью. Теперь для каждого идентификатора категории я должен вернуть список вопросов и ответов следующим образом:

//  [
//    { title: "Math",
//      clues: [
//        {question: "2+2", answer: 4, showing: null},
//        {question: "1+1", answer: 2, showing: null}
//        ...
//      ],
//    },
//    { title: "Literature",
//      clues: [
//        {question: "Hamlet Author", answer: "Shakespeare", showing: null},
//        {question: "Bell Jar Author", answer: "Plath", showing: null},
//        ...
//      ],
//    },
//    ...
//  ]

И вот что я написал до сих пор:

async function getCategory(categoryIDs) {
    const res2 = await axios.get("http://jservice.io/api/clues", {
        params: {
          category: 11603
        }
      });
    console.log(res2.data)
    console.log(res2.data[0].category.title + ':', res2.data[0].question, res2.data[0].answer)
    console.log(res2.data[1].category.title + ':', res2.data[1].question, res2.data[1].answer)
    console.log(res2.data[2].category.title + ':', res2.data[2].question, res2.data[2].answer)
    console.log(res2.data[3].category.title + ':', res2.data[3].question, res2.data[3].answer)
    console.log(res2.data[4].category.title + ':', res2.data[4].question, res2.data[4].answer)
}

И я понимаю, что все console.log не дают мне отформатированные данные так, как мне нужно, я просто пытался оценить, могу ли я на самом деле вытащить данные и играть с ним.

Я не в школе, и это не домашнее задание, и я не ищу ответов, просто ясность. У меня есть два вопроса: 1) только с одним вызовом функции, async function getCategory(categoryIDs), каков наилучший способ или как правильно передать 100 отдельных идентификаторов категорий в мой параметр запроса, чтобы он возвращал массив информации обо всех категориях? И как лучше структурировать мои данные, как в примере выше.

Спасибо.

...