Bonjour tout le monde,
Cette semaine, j’ai travaillé sur un bug dans l’un de mes logiciels lié
à une API REST.
Je constate que depuis quelques jours j’ai des exceptions
DateTimeParseException dans les logs, lorsque le logiciel contacte l’API
alors que ça ne l’avais jamais fait avant.
Je vais sur la documentation de l’API et la je lis que le format de la
date et l’heure est ISO 8601 sans plus de précision avec un lien vers le
site officiel iso.org. Sauf que je constate avec stupeur que le document
est derrière un paywall, et que c’est pas donné en plus : 158 CHF, (je
précise que je ne savais pas encore à ce moment là que les normes ISO
étaient payantes).
N’ayant pas accès au document, je contacte le dev qui a développé le
client de l’API, pour lui demander sur quels informations il s’était
basé pour parser la date et l’heure de cette API, il m’avoue qu’il n’a
pas consulté le document ISO 8601 mais qu’il est allé cherché des infos
sur Internet et a utilisé du coup la RFC3339, en pensant que ça serait
équivalent.
Du coup il a utilisé le format : YYYY-MM-DD HH:MM:SS-00:00 (L’heure est
en UTC) et m’a dit que ça fonctionnait très bien à l’époque.
Ne comprenant pas pourquoi ça ne fonctionne plus j’ouvre un ticket
auprès du support de l’API, et il me répondent que ce format n’est pas
correct et n’est pas ISO 8601, et ils me disent que le véritable format
est YYYY-MM-DDTHH :MM:SSZ (le Z à la fin voulant dire UTC).
Je me suis renseigné par la suite sur l’article Wikipédia ISO 8601, et
j’apprends qu’il y a des différences avec la RFC3339 :
* Dans ISO il faut obligatoirement mettre le « T » entre la date et
l’heure mais pas dans la RFC
* Le fuseau horaire -00:00 (avec un – devant) est autorisé dans la
RFC3339 mais pas dans la norme ISO
Je trouve ça scandaleux de faire payer l’accès à des standards, un
standard payant ne peut pas être considérer comme un standard si
seulement une poignée de personne ne peut y accéder. La propriété
intellectuelle est à l’origine de source de bugs et d’énervement. Je
pense qu’on devrait boycotter les normes ISO et n’utiliser que des
standards publiquement accessibles.
Ne faites pas de standards si c’est pour les planquer derrière un paywall.
Fin du coup de gueule,
Bonne soirée et bon Week-end.
---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/