Implementando Negociação de Conteúdo com Base nos Cabeçalhos HTTP
Os aplicativos Representational State Transfer (REST) podem retornar representações de recursos diferentes. É possível usar a negociação de conteúdo com base nos cabeçalhos HTTP Accept para determinar o formato de conteúdo que é usado para trocar dados entre os servidores e clientes.
Sobre Esta Tarefa
Os recursos podem representar dados em formatos diferentes. É possível implementar negociação de conteúdo com base nas URLs, nos parâmetros de pedidos ou nos cabeçalhos HTTP. Essa tarefa descreve a negociação de conteúdo com base nos cabeçalhos HTTP Accept para enviar e receber formatos de dados diferentes.
Quando um navegador da Web faz um pedido, ele envia informações sobre o que ele está procurando para o servidor em cabeçalhos. Um desses cabeçalhos é o cabeçalho de Aceitação. O cabeçalho de Aceitação informa ao servidor quais formatos ou tipos MIME o cliente está procurando. É possível usar os cabeçalhos HTTP Accept para determinar o formato de conteúdo usado para trocar dados.
Enquanto que o cabeçalho Accept não é visível como URLs ou parâmetros, esse cabeçalho é o método mais flexível de manipular negociação de conteúdo. Também é possível usar os cabeçalhos HTTP Accept, Accept-Charset, Accept-Language e Accept-Encoding para determinar o tipo de conteúdo que é retornado do servidor.
Usando os cabeçalhos HTTP, é possível designar graus de qualidade para as respostas aceitáveis. Por exemplo, um cliente pode indicar que XML é o tipo de conteúdo de resposta preferido. Entretanto, se XML não estiver disponível, o cliente pode aceitar JSON ou um texto simples para o formato.
Por exemplo, se o cabeçalho de Aceitação contiver um valor como application/json; q=1.0, text/xml;q=0.5, application/xml;q=0.5, esse valor indicará que JSON é preferencial, mas XML também é aceitável.
Em outros métodos de negociação de conteúdo, normalmente apenas um tipo de resposta preferido existe. Entretanto, é possível usar os cabeçalhos HTTP Accept para informar o serviço de todos os tipos possíveis que são aceitos para o cliente em um pedido. Além disso, a HTTP Accept e seus cabeçalhos relacionados fazem parte do padrão HTTP.
É importante considerar os seguintes aspectos ao implementar a negociação de conteúdo usando cabeçalhos HTTP. Alguns clientes podem enviar valores incorretos e alguns serviços podem não respeitar os cabeçalhos HTTP Accept. Além disso, processar todos os cabeçalhos HTTP e calcular a resposta ideal não é tão direto do que solicitar o conteúdo com base em uma URL ou um parâmetro de pedido.
Procedimento
Resultados
Você implementou a negociação de conteúdo usando os cabeçalhos de Aceitação para determinar os formatos de recursos que representam dados.