Faz sentido usar âncoras internas para filtrar a representação de uma API REST?

StackOverflow https://stackoverflow.com/questions/2551262

  •  23-09-2019
  •  | 
  •  

Pergunta

Como acompanhamento minha pergunta anterior sobre URIs REST para recuperar informações estatísticas para um recurso de fórum da web, quero saber se é possível usar as âncoras internas como dicas de filtro.Veja exemplo abaixo:

a) Obtenha todas as estatísticas:

GET /group/5t7yu8i9io0op/stat
{ 
    group_id: "5t7yu8i9io0op",
    top_ranking_users: {
      [ { user: "george", posts: 789, rank: 1 }, 
        { user: "joel", posts: 560, rank: 2 }  ...]
      },
    popular_topics: {
      [ ... ]
    },
    new_topics: {
      [ ... ]
    }
}

b) OBTENHA apenas tópicos populares

GET /group/5t7yu8i9io0op/stat#popular_topics
{ 
    group_id: "5t7yu8i9io0op",
    popular_topics: {
      [ ... ]
    }
}

c) OBTENHA apenas os usuários mais bem classificados

GET /group/5t7yu8i9io0op/stat#top_ranking_users
{ 
    group_id: "5t7yu8i9io0op",
    top_ranking_users: {
      [ { user: "george", posts: 789, rank: 1 }, 
        { user: "joel", posts: 560, rank: 2 }  ...]
    }
}

Ou devo usar parâmetros de consulta?

Foi útil?

Solução

Não tenho certeza do que você está tentando fazer exatamente, mas certifique -se de entender que os identificadores de fragmentos não são vistos pelo servidor, eles são cortados pelo conector do cliente.

Ver: http://www.nordsc.com/blog/?p=17

Outras dicas

Nunca vi âncoras sendo usadas dessa forma – é interessante.Dito isto, sugiro usar parâmetros de consulta por alguns motivos:

  1. Eles são padrão - e os consumidores da sua API ficarão confortáveis ​​com eles.Não há nada mais irritante do que lidar com uma API peculiar.

  2. Muitas estruturas analisarão automaticamente os parâmetros de consulta e os definirão em um dicionário no objeto de solicitação (ou qualquer análogo existente em sua biblioteca de estrutura/servidor http).

Eu acho que faria mais sentido ter:

/group/5t7yu8i9io0op/stat/top_users
/group/5t7yu8i9io0op/stat/popular_topics
/group/5t7yu8i9io0op/stat/new_topics
/group/5t7yu8i9io0op/stat/user/george

Não, você não pode fazer isso porque, como Jan aponta, o servidor nunca verá esse identificador de fragmento. Literalmente, essa parte do URL não atingirá o servidor.

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