Quel est le format d’horodatage recommandé pour une API GET REST) comme ceci:
http://api.example.com/start_date/{timestamp}
Je pense que le format de date réel devrait être le format ISO 8601, tel que YYYY-MM-DDThh:mm:ssZ
pour l'heure UTC.
Devrions-nous utiliser la version ISO 8601 sans les traits d'union et les deux points, tels que:
http://api.example.com/start_date/YYYYMMDDThhmmssZ
ou devrions-nous encoder le format ISO 8601, en utilisant par exemple l'encodage en base64?
REST n'a pas de format de date recommandé. En réalité, tout se résume à ce qui fonctionne le mieux pour votre utilisateur final et votre système. Personnellement, je voudrais coller à une norme similaire à celle d’ISO 8601 (code URL).
Si vous n’avez pas d’URI laid, c’est un problème (par exemple, ne pas inclure la version codée dans l’URL de :
, -
, dans votre URI) et l’adressabilité (humaine) n’est pas aussi importante, vous pouvez également prendre en compte le temps Epoch (par exemple, http://example.com/start/1331162374
). L'URL semble un peu plus propre, mais vous perdez certainement de la lisibilité.
Le /2012/03/07
est un autre format que vous voyez souvent. Vous pouvez développer ce que je suppose. Si vous choisissez cette voie, assurez-vous que vous êtes toujours soit à l'heure GMT (et précisez-le dans votre documentation), ou vous pouvez également inclure une sorte d'indicateur de fuseau horaire.
En fin de compte, cela se résume à ce qui fonctionne pour votre API et votre utilisateur final. Votre API devrait fonctionner pour vous, pas pour vous ;-).
Consultez cet article pour connaître les 5 lois des dates et heures de l'API ICI :
Plus d'infos dans la documentation.
RFC6690 - Format de lien pour les environnements RESTful restreints (CoRE) N'indique pas explicitement quel format de date doit être placé dans section 2. Format de lien il renvoie à la RFC 3986. Cela implique que la recommandation pour le type de date RFC 3986 doit être utilisé.
En gros RFC 3339 Date et heure sur Internet est le document à regarder qui dit:
le format de date et d’heure à utiliser dans les protocoles Internet constitue un profil de la norme ISO 8601 pour la représentation des dates et des heures à l’aide du calendrier grégorien.
ce qui revient à: AAAA-MM-JJTHH: mm: SS.SS ± hh: mm
(par exemple 1937-01-01T12: 00: 27.87 + 00: 20)
Est le pari le plus sûr.
Chaque champ date/heure en entrée/sortie doit être au format NIX/Epoch. Cela évite la confusion entre les développeurs de différents côtés de l'API.
Avantages:
Inconvénients:
Notes: