¿Cuál es el formato de marca de tiempo recomendado para una API REST GET como esta?
http://api.example.com/start_date/{timestamp}
Creo que el formato de fecha real debería ser el formato ISO 8601, como la YYYY-MM-DDThh:mm:ssZhora UTC.
¿Deberíamos utilizar la versión ISO 8601 sin guiones ni dos puntos, como:
http://api.example.com/start_date/YYYYMMDDThhmmssZ
¿O deberíamos codificar el formato ISO 8601, usando, por ejemplo, codificación base64?

Respuestas:
REST no tiene un formato de fecha recomendado. Realmente se reduce a lo que funciona mejor para su usuario final y su sistema. Personalmente, me gustaría ceñirme a un estándar como el que tiene para ISO 8601 (codificado en URL).
Si no teniendo fea URI es una preocupación (por ejemplo, sin incluir la versión codificada de la URL
:,-,en la que URI) y la capacidad de direccionamiento (humana) no es tan importante, también se puede considerar el tiempo época (por ejemplohttp://example.com/start/1331162374). La URL se ve un poco más limpia, pero ciertamente pierde legibilidad.El
/2012/03/07es otro formato que se ve mucho. Supongo que podrías ampliar eso. Si sigue esta ruta, asegúrese de estar siempre en la hora GMT (y deje eso claro en su documentación) o también puede incluir algún tipo de indicador de zona horaria.En última instancia, se reduce a lo que funciona para su API y su usuario final. Tu API debería funcionar para ti, no para ti ;-).
fuente
http://api.example.com/start_date/YYYYMMDDThhmmssZ) que es buena para la legibilidad y las URL limpias.Consulte este artículo para conocer las 5 leyes de fechas y horarios de API AQUÍ :
Más información en los documentos.
fuente
2017-11-20T11%3A00%3A00Zque no es muy legible. Además (específico de IIS) parece ser muy paranoico acerca de los dos puntos en las URL, incluso si están codificadas.RFC6690 - Formato de enlace de entornos RESTful restringidos (CoRE) No indica explícitamente qué formato de fecha debería ser, sin embargo, en la sección 2. Formato de enlace apunta a RFC 3986. Esto implica que se debe utilizar la recomendación para el tipo de fecha en RFC 3986 .
Básicamente, RFC 3339 Date and Time en Internet es el documento que hay que mirar que dice:
a qué se reduce esto: AAAA-MM-ddTHH: mm: ss.ss ± hh: mm
(por ejemplo, 1937-01-01T12: 00: 27.87 + 00: 20)
Es la apuesta más segura.
fuente
Cada campo de fecha y hora de entrada / salida debe estar en formato UNIX / epoch . Esto evita la confusión entre desarrolladores en diferentes lados de la API.
Pros:
Contras:
Notas:
fuente
Utilice siempre UTC:
Por ejemplo, tengo un componente de programación que toma un parámetro DATETIME. Cuando llamo a esto usando un verbo GET, uso el siguiente formato donde mi nombre de parámetro entrante es scheduleDate.
Ejemplo:
https: // localhost / api / getScheduleForDate? ScheduleDate = 2003-11-21T01: 11: 11Z
fuente