Использовать строку запроса в URL-адресе или использовать несколько URL-адресов? - PullRequest
0 голосов
/ 29 мая 2020

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

Например: axios.get('/posts?type =sport')

Или мне нужно поместить все одиночный тип в отдельном URL

Например: axios.get('/posts/sport')

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

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

добро пожаловать в Stackoverflow!

Я могу представить, что у вас есть какой-то веб-API, обслуживающий URL /posts. Вы хотите использовать эту конечную точку из своего веб-приложения, и для этого вы используете ax ios. Я могу предположить, что вы используете JSON для возврата этих данных. Поправьте меня, если я ошибаюсь.

Теперь, когда основная c информация «ясна», вы решаете, какие данные вы обслуживаете с конечной точки и как они запрашиваются у клиента. Вы хотите сначала спросить сервер, какие типы есть, а затем выполнить по одному запросу AJAX для каждого типа? Хорошо. Вы хотите обслуживать все сообщения независимо от их типа? Хорошо. Вы хотите принимать данные POST в своем контроллере, чтобы вы могли фильтровать результаты перед возвратом ответа? Хорошо.

Если вы ищете более подробный c ответ, вы должны указать более подробную информацию или указать больше. Но я надеюсь, что смогу помочь.

Изменить: полный ответ.

Если вы хотите отфильтровать результаты, вам нужно отправить дополнительные данные в своем POST запросите, в данном случае, ваш тип сообщения. В ax ios это можно сделать следующим образом:

axios.post('https://example.com/posts', {
    type: 'sports'
}).then((data) => {
    console.log(data);
});

Очевидно, вы можете получить значение «type» из ввода выбора, другой переменной, даже из текущей страницы маршрутизатора. Я не знаю вашей точной настройки, но вы всегда можете вернуться и спросить;)

ТОГДА, в вашем контроллере API вы должны получить этот параметр POST type и использовать его для фильтрации результатов. Опять же, я не знаю вашей точной настройки, но для MySQL if в вашем запросе будет оператор WHERE или аналогичный.

0 голосов
/ 29 мая 2020

вы можете добавить динамический c маршрут к каждому новому типу. Пример: '/ transaction' -> component-1 '/ transaction /: type' -> component-any (multiple)

...