Para nosso serviço REST, desejo enviar de volta um ID de solicitação exclusivo com todas as respostas; útil para depurar projetos internos, mas também para oferecer suporte a terceiros que possam usar o serviço no futuro.
Decidi que preciso usar um cabeçalho de resposta, pois nem todas as solicitações REST precisam resultar em um corpo de resposta (geralmente as APIs REST de nível inferior aproveitam-se apenas do código e da descrição do status), mas ainda precisam enviar essa solicitação de volta. EU IRIA.
Desejo garantir, se possível, que eu use um cabeçalho de resposta HTTP que provavelmente não será removido por nenhum proxy ao longo do caminho.
Isso pode ser muito importante, já que um grande número de clientes provavelmente será um dispositivo móvel com topologias de rede 'interessantes' entre eles e nossos servidores.
No entanto, é provável que os mesmos serviços sejam comercializados para outras empresas com seus próprios firewalls / proxies corporativos.
Por causa disso, basicamente expus a idéia de usar um cabeçalho de resposta personalizado em favor de um cabeçalho conhecido.
Meu atual cabeçalho conhecido e vencedor seria o ETag
cabeçalho, mas enquanto estiver quase certo, não é bem - porque um ETag
é para um recurso, não uma solicitação (ou seja, duas solicitações separadas para o mesmo recurso retornarão legitimamente o mesmo ETag
). Além disso, se eu usar isso, significa que não posso fazer nenhuma marcação de entidade para mais nada.
Alguém tem alguma ideia melhor?
Atualizar
O cabeçalho do Pragma, ao que parece, pode ser usado, mas estou tendo problemas para escrevê-lo no Asp.Net WebAPI. Aqui está uma pergunta relacionada ao SO .
fonte
Veja as diretrizes da equipe Heroku. Entre outras coisas, como Etags, eles sugerem um ID de solicitação no cabeçalho. Estamos procurando implementar a maioria dessas diretrizes onde elas fizerem sentido.
https://github.com/interagent/http-api-design/blob/master/README.md
fonte