Estou trabalhando em um conjunto de serviços da Web para um cliente móvel, e os requisitos exigem que um ID de dispositivo exclusivo seja incluído em todas as solicitações, seja armazenado em determinadas solicitações e usado para filtrar resultados em outras.
Foi feita uma sugestão de que ele fosse colocado em um cabeçalho HTTP personalizado, uma vez que será incluído em todas as solicitações, então comecei a pensar em quais critérios poderiam ser usados para determinar se um dado dado pertence a um cabeçalho ou junto com outros dados em o corpo da solicitação.
Existe algum desses critérios?
http
http-request
Mike Partridge
fonte
fonte
Respostas:
Quando a informação é importante, você deve colocá-la no corpo.
Por quê?
fonte
Embora a linha esteja um pouco embaçada, para mim uma regra geral é: os dados nos quais sua lógica de negócios trabalha devem estar no corpo, os metadados podem / devem ser colocados em cabeçalhos.
Outra maneira de analisar é: os dados que aparecem apenas em tipos específicos de solicitações devem estar no corpo, enquanto os dados que são tratados de forma consistente em todo o aplicativo devem entrar em cabeçalhos.
Outro ponto de vista é: você pode imaginar que um dado é tratado globalmente, por exemplo, por um roteador / firewall e não por seu aplicativo? Se sim, provavelmente deve aparecer nos cabeçalhos e não no corpo.
Alguns exemplos de aplicação dessas regras seriam:
Voltando à sua pergunta sobre o ID exclusivo do dispositivo: se for usado de maneira consistente em qualquer lugar, por exemplo, apenas para registro, poderá ser colocado nos cabeçalhos. Mas se for usado para filtrar solicitações de maneiras diferentes, dependendo do ponto de extremidade, seria melhor no corpo. Obviamente, se você tiver os dois casos de uso, provavelmente será melhor seguir apenas uma maneira de transmiti-los (provavelmente os cabeçalhos), em vez de forçar o usuário da API a colocar os mesmos dados em dois lugares, fornecendo o dilema de permitir entradas inconsistentes ou implementação de algum tipo de validação.
fonte
O conteúdo da solicitação do cliente; as que não serão alteradas em várias solicitações para o mesmo servidor farão parte do HEADER, por exemplo, credenciais; outras que são frequentemente alteradas por solicitação farão parte do BODY.
OU
A propriedade do conteúdo da mensagem / corpo entrará no cabeçalho. por exemplo) tipo de codificação, comprimento do conteúdo, tipo de conteúdo.
E
No seu caso, parâmetros de filtro como devem ser adicionados como parâmetros de consulta / solicitação no URL.
/mobiles?type=MOTO&colour=black
Em serviços repousantes, o próprio URL se refere a um objeto
/conferences/{conference_id}
-> refere-se a conferência específicafonte