Bem este post vai servir não só como uma forma rápida de apanhar algumas opiniões como também para ficar com uma nota para mim próprio sobre esta ideia.
Para o meu TV Wall estou a tentar ir o mais longe possível no juntar da API da aplicação com o que efectivamente é visível para os utilizadores e parte disso passa por tentar ter praticamente o mesmo esquema de URLs tanto para o browser como para a API utilizada pelos mais diversos clientes (quer seja a própria aplicação web em javascript ou outra qualquer hipotética aplicação nativa). Isto faz com que os endereços se tornem por exemplo em algo como
/show/house
para aceder, neste caso, à pagina associada à série House.Agora o desafio: como fazer o mesmo endereço devolver HTML para um browser mas JSON (ou XML ou qualquer outro formato de dados) para uma aplicação? A minha resposta passa pelos cabeçalhos
HTTP
, mais concretamente pelo cabeçalho ACCEPT
que ao anunciar que aceita um determinado tipo de dados permite-me devolver-lhe esse tipo em particular deixando o HTML normal para fallback.Claro que eu posso já começar a ver os problemas associados a esta abordagem: e se surgir um browser que manda um cabeçalho a dizer aceitar
application/json
quando o que o utilizador quer mesmo receber é a versão HTML? E se um cliente enviar no cabeçalho que aceita tanto JSON como XML? Qual dos dois devolver? Sim, isto são tudo questões muito validas e é por isso mesmo que coloquei esta entrada no meu blog. Opiniões?