Pergunta

No trabalho aqui, temos uma caixa que serve feeds XML para parceiros de negócios. As solicitações de nossos feeds são personalizadas especificando parâmetros e valores da string de consulta. Alguns desses parâmetros são necessários, mas muitos não.

Por exemplo, precisamos de todas as solicitações para especificar um GUID para identificar o parceiro, e uma solicitação pode ser para uma ação de "obter mais recente" ou "pesquisa":

Para uma pesquisa: http: //services.null.ext/? Id = [Guid] & q = [Pesquise Palavras-chave
Dados mais recentes na categoria: http: //services.null.ext/? Id = [GUID] & Category = [id

É fácil estruturar um esquema de URL repousante para esses parâmetros:

Procurar: http: //services.null.ext/ [guid]/search/[Palavras -chave
Mais recentes: http: //services.null.ext/ [guid]/mais recente/categoria/[id

Mas como devemos lidar com as dezenas de parâmetros opcionais que temos? Muitos deles são mutuamente exclusivamente e muitos são necessários nas combinações. Muito rapidamente, o número de caminhos possíveis se torna extremamente complexo.

Quais são algumas práticas recomendadas para mapear URLs com seqüências de consultas complexas para amigáveis/restos/ful/caminhos?

(Estou interessado em convenções, esquemas, padrões, etc. Não são tecnologias específicas para implementar o URL-Rewriting em um servidor da Web ou em uma estrutura.)

Foi útil?

Solução

Você deve deixar parâmetros de consulta opcionais na sequência de consultas. Não existe "regra" em repouso que diga que não pode haver uma sequência de consultas. Na verdade, é o contrário. A sequência de consulta deve ser usada para alterar a visão da representação que você está transferindo de volta para o cliente.

Atenha -se a "entidades com estado representável" para seus componentes do caminho da URL. A categoria parece boa, mas o que exatamente você está alimentando com XML? Postagens? Itens de catálogo? Peças?

Eu acho que uma taxonomia de descanso muito melhor ficaria assim (assumindo que o conteúdo do seu feed XML é um "artigo"):

Se você não está pensando nas entidades que está representando ao criar sua estrutura de descanso, não está descansando. Você está fazendo outra coisa.

Dar uma olhada em Este artigo sobre práticas recomendadas de repouso. É velho, mas pode ajudar.

Outras dicas

Parâmetros com valores? Uma opção é a sequência de consulta. Usá-lo não é inerentemente não restrito. Outra opção é usar o Semi-Colon, Tim Berners-Lee fala sobre eles E eles podem se encaixar na conta, permitindo que o URL faça sentido, sem ter caminhos massivamente longos.

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