Qual é o formato de carimbo de data / hora recomendado para uma API REST GET como este:
http://api.example.com/start_date/{timestamp}
Acho que o formato de data real deve ser o formato ISO 8601, como YYYY-MM-DDThh:mm:ssZ
para a hora UTC.
Devemos usar a versão ISO 8601 sem hifens e dois pontos, como:
http://api.example.com/start_date/YYYYMMDDThhmmssZ
ou devemos codificar o formato ISO 8601, usando, por exemplo, a codificação base64?
Respostas:
REST não tem um formato de data recomendado. Na verdade, tudo se resume ao que funciona melhor para o usuário final e o sistema. Pessoalmente, gostaria de seguir um padrão como o que você tem para ISO 8601 (codificado por url).
Se não ter feio URI é uma preocupação (por exemplo, não incluindo a versão codificada url
:
,-
,em que você URI) e endereçamento (humana) não é tão importante, você também pode considerar tempo de época (por exemplo
http://example.com/start/1331162374
). O URL parece um pouco mais limpo, mas você certamente perde a legibilidade.Esse
/2012/03/07
é outro formato que você vê muito. Você poderia expandir isso, suponho. Se você seguir esse caminho, certifique-se de estar sempre no horário GMT (e deixe isso claro em sua documentação) ou talvez queira incluir algum tipo de indicador de fuso horário.Em última análise, tudo se resume ao que funciona para sua API e seu usuário final. Sua API deve funcionar para você, não para ela ;-).
fonte
http://api.example.com/start_date/YYYYMMDDThhmmssZ
), que é boa para legibilidade e URLs limpos.Verifique este artigo para as 5 leis de datas e horários da API AQUI :
Mais informações nos documentos.
fonte
2017-11-20T11%3A00%3A00Z
não é muito legível. Além disso (específico do IIS), parece ser muito paranóico sobre os dois pontos em URLs, mesmo se eles estiverem codificados.RFC6690 - Formato de link de ambientes RESTful restritos (CoRE) Não declara explicitamente qual formato de data deve ser, no entanto, na seção 2. Formato de link, ele aponta para RFC 3986. Isso implica que a recomendação para o tipo de data no RFC 3986 deve ser usada.
Basicamente, Data e Hora RFC 3339 na Internet é o documento a ser examinado que diz:
o que isso se resume a: AAAA-MM-ddTHH: mm: ss.ss ± hh: mm
(por exemplo, 1937-01-01T12: 00: 27.87 + 00: 20)
É a aposta mais segura.
fonte
Cada campo de data e hora na entrada / saída precisa estar no formato UNIX / época . Isso evita a confusão entre os desenvolvedores em diferentes lados da API.
Prós:
Contras:
Notas:
fonte
Sempre use UTC:
Por exemplo, eu tenho um componente de programação que leva em um parâmetro DATETIME. Quando eu chamo isso usando um verbo GET, uso o seguinte formato, em que o nome do meu parâmetro de entrada é scheduleDate.
Exemplo:
https: // localhost / api / getScheduleForDate? ScheduleDate = 2003-11-21T01: 11: 11Z
fonte