Pergunta

No caminho:

Formato: http://mydomain.com/ {categoria} / { subcategoria} / {pageNumber} / {pageSize}

Exemplo: http://mydomain.com/books/ Suspense / 25/03

No querystring:

Formato: http://mydomain.com/ {categoria} / { subcategoria}? pageNumber = {} pageNumber & pageSize = {pageSize}

Exemplo: http://mydomain.com/ livros / suspense? pageNumber = 3 & pageSize = 25

Eu gosto de ter tudo no caminho, mas o meu problema com isso é que, embora seja óbvio (ou pelo menos um pouco óbvio) que "livros" e "Thriller" estão em primeiro exemplo, o "3" e "25" parecem bastante arbitrária pelo contrário.

Existe um método canônico para determinar o que vai onde no MVC, ou é realmente apenas até o dev?

Foi útil?

Solução

Eu prefiro coisas como pagenumbers estar nas variáveis ??querystring. Eu acho que há uma diferença na descritivo entre

http://mydomain.com/books/thriller?pagesize=50&page=4

e

http://mydomain.com/books/thriller/50/4

O ponto (para mim) de ter url do limpa é para eles para ser mais descritivo e legível, e acho que o primeiro exemplo a ser apenas isso.

Um ponto interessante feito por JohnRudolfLewis é:

Uma regra que eu sigo é que, se for necessário o argumento, considere usar o caminho, se o argumento é opcional, use sempre querystring argumentos.

Outras dicas

Uma regra que eu sigo é que se o argumento é necessário, considere o uso do caminho, se o argumento é opcional, sempre use argumentos querystring.

No geral, eu iria ficar para o que faz o olhar url mais legível.

Este site coloca no querystring: https://stackoverflow.com/questions?page=2&pagesize=30

Bem, é, obviamente, depende de você. Mas, você está projetando uma interface RESTful que é suposto ser legível. A querystring é muito melhor a esse respeito. Caso contrário, você está olhando para dois números que realmente poderia ser qualquer coisa. E quem é que vai lembrar a ordem?

Existe um método canônico para determinar o que vai onde no MVC, ou é realmente apenas até o dev?

É até você.

MVC é sobre a organização / fluxo de seu código do lado do servidor e separando a vista da camada de negócios, não tanto sobre os parâmetros de consulta.

Você também pode considerar o seguinte

Formato

http://mydomain.com/{category}/{subcategory}/page/{pageNumber}/results/{pageSize}

Exemplo

http://mydomain.com/books/thriller/page/3/results/25

É muito bonito até o desenv. Eu diria que colocar o pageSize na URL.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top