Разработка API подробных конечных точек с большим количеством запросов - PullRequest
0 голосов
/ 03 февраля 2019

Я использую экспресс с узлом, чтобы действительно легко создавать конечные точки.У меня есть конечная точка с именем /users/:uid/upload с запросом POST.Я хочу, чтобы он обрабатывал огромное количество данных, однако отправка запроса с 3,5 МБ JSON приводит к ошибке 412 (слишком большая полезная нагрузка).

Моя полезная нагрузка содержит массив (музыкальных) исполнителей иальбомы, поэтому artist/:artistid/albums/:albumid

Итак, я подумал об альтернативах:

  1. Альтернатива: подробные конечные точки с большим количеством запросов

Так что я бы создал следующие конечные точки:

POST /artists/:artistid/data
POST /artists/:artistid/albums/:albumid/

Это приведет к уменьшению большой полезной нагрузки, но тогда у меня будет number_of_artists * number_of_albums_per_artist запросов относительно близко друг к другу

Альтернатива: загрузка JSON в виде файла

Мне нужно сохранить мои данные в файл, а затем загрузить их, затем проанализировать файл и сохранить его где-нибудь.Я бы предпочел не использовать эту опцию, так как файлы должны были бы обновляться довольно часто.

Есть ли какая-то альтернатива, которую я пропускаю, и вы бы порекомендовали вариант 1 с большим количеством запросов?

Спасибо

1 Ответ

0 голосов
/ 03 февраля 2019

Для вашей текущей ситуации вы можете просто увеличить ограничение размера.

Установить и потребовать body-parser:

const bodyParser = require('body-parser')

Довы заявляете, что ваши конечные точки добавляют это:

app.use(bodyParser.json({ limit: '10mb'}))


Хотя я бы порекомендовал множественные запросы к подробным конечным точкам, поскольку в случае сбоя вы можете повторить попытку только этой конкретной.Вся операция не провалится таким образом.Поэтому, если у вас есть время, чтобы инвестировать в это, лучшим способом было бы использование нескольких конечных точек.

...