Каков максимальный URL параметров запроса, который я должен использовать? - PullRequest
0 голосов
/ 10 апреля 2020

Я разрабатываю приложение для узла, конечная точка которого фильтрует истории.

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

Пример:

http://localhost:3000/api/search?location=wherever&duration=123

Мне было интересно если есть какой-нибудь способ лучше сделать это, например:

http://localhost:3000/api/search?filter=location:wherever,duration:123

или даже я мог бы отправить объект stringify из URL, но это кажется мне уродливым решением.

Второй способ, который я здесь привожу, выглядит для меня чище, но я не уверен, как обращаться с параметрами.

В первом варианте я могу передать req.query своему сервису и обработать объект, однако в В противном случае обработать значение фильтра будет сложнее.

Как вы думаете? Как вы справляетесь с этим делом, чтобы отправить фильтр вам на спину?

Заранее спасибо и мои извинения, если на него уже ответили, я не нашел подобного сообщения.

1 Ответ

2 голосов
/ 10 апреля 2020

Какой максимальный URL параметров запроса я должен использовать?

Количество параметров запроса не ограничено и не вызывает проблем с их большим количеством.

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

Пять - это низкий, а не высокий - с тобой все в порядке.

Практическое ограничение на общую длину URL-адреса составляет около 2000 символов, поэтому вы просто хотите, чтобы ваши URL-адреса оставались комфортно ниже этого значения, и не беспокоиться о количестве отдельных параметров запроса.

Я бы рассмотрел только альтернативный вариант. способ отправить запрос, если общая длина URL становится слишком длинной или может быть слишком длинной. Кроме того, вы можете иметь столько параметров запроса, сколько захотите. Это на самом деле не то, что человек потребляет напрямую, это просто то, что ваш код генерирует и анализирует, поэтому количество действительно не имеет значения.

Тем не менее, если бы у вас было 100 отдельных параметров запроса, которые все были бы использованы одновременно, Я хотел бы знать, что вы делаете, и если есть лучший способ выполнить sh это или express запрос, но это не будет технической проблемой или ограничением.

Структурные альтернативы используя POST вместо GET и отправляя данные как JSON или что-то в этом роде. Таким способом вы можете отправлять столько данных, сколько хотите, но POST изменяет удобство использования URL-адреса, поскольку это не то, что можно просто напрямую связать, добавить в закладки или скопировать в строку URL-адреса, как это делает GET.

...