Nodejs Пагинация с использованием Shipment.all и Tracker.all - PullRequest
0 голосов
/ 03 февраля 2020

Appolgies Я совершенно новичок в Nodejs и программировании, поэтому Короче говоря:

Используя API Easypost Nodejs, мне нужно получать все статусы отслеживания 3 раза в день, используя мой Nodejs / express backend.

Я достиг предела скорости для моего очень неэффективного способа получения всего моего статуса отслеживания ». Это отдельный вызов для каждого Shipmentid, чтобы получить Trackingid, который затем получает самый последний статус. Ужасно плохо, я знаю.

Так что я пошел в Документы и подумал, круто, я сделаю все отдельно, получу все свои пакеты (myDB), затем отдельно получу список всех трекеров, а затем сопоставлю их с использованием идентификатора отгрузки.

Проблемы ...

  1. Я новичок ie.

  2. как сделать несколько звонков с нумерацией страниц -> Мои первые мысли состоят в том, чтобы выполнить начальный вызов, чтобы увидеть, есть ли несколько страниц, если «has_more» имеет значение true, а затем запустить столько раз, сколько нужно на столько страниц, сколько мне нужно за последние 2 месяца.

  3. следующая проблема ... мне кажется, что в ответе от easypost API отсутствует информация о подкачке. В документах должен быть ответ {trackers:[all tracker info here], "has_more": true}, но в ответе есть только массив трекеров. даже если я установлю размер страницы на 1 или 2 ...

Текущий код для получения списка трекеров:

      .get((req, res) => {
        console.log('Recieved - ' + req.method + req.originalUrl)
        easyPostAPI.Tracker.all(req.body)
          .then( response => {
            console.log('Sent - ' + req.method + req.originalUrl)
            res.json(response)
          })
          .catch(err => {
            console.log(err)
            res.status(400).json(err)
          })
      })```


hopefully it's not just me getting it wrong.


1 Ответ

0 голосов
/ 04 февраля 2020

EasyPost только что выпустил 3.8.0 версию библиотеки узлов , в которой вы можете получить доступ к свойству has_more в массиве, например:

api.Shipment.all({ page_size: 2, ... }).then(shipment => console.log(shipment.has_more))

В @ easypost / api v4.0.0, вероятно, есть более удобный способ разбивки на страницы, но на данный момент указанное выше свойство должно позволить разбивать на страницы.

...