Accès aux API de livraison¶
Les données d’une livraison¶
Une livraison définit les 6 données suivantes :
id
: identifiant technique de la livraison.label
: le numéro de version de l’application qui est livrée.description
: champs texte libre.application
: l’application concernée.environnement
: l’environnement cible de la livraison.startDate
: date de début de la livraison au format Epoch en milliseconde au fuseau horaire local.endDate
: date de fin de la livraison au format Epoch en milliseconde au fuseau horaire local.
Enregistrement d’une livraison¶
On commence par définir les données que l’on souhaite enregistrer dans un format lisible.
### donnée de la livraison ##################################################
# id de l'application "Application courier"
appli = "16a167f5-c3e8-c47d-a588-f9dbb5193cf8"
# id de l'environnement "Pre-Prod"
env = "8910fe04-5a7e-aca9-cf49-117a9bf3c861"
# numéro de la version
version = "2.3.5"
# description
description = "Livraison de la version 2.3.5 qui corrige les bugs #483 et #484."
# dates du début et de fin de la livraison
dateDebut = "25/08/2022 13h00"
dateFin = "25/08/2022 13h00"
L’id est généré aléatoirement :
id = str(uuid.uuid4())
Le code suivant formate les données. Concernant les champs environnement
et application
, l”id
suffit. Concernant le champ description
, il est optionnel.
# formatage des dates au format epoch en milliseconde
def format_date(date_str):
date_date = datetime.datetime.strptime(date_str, "%d/%m/%Y %Hh%M")
date_epoch = date_date.timestamp()
return int(date_epoch)*1000
# formatage des données de la livraison
livraison = {
"id": id,
"label": version,
"environnement": {"id": env}, # l'environnement est défini par son ID
"application": {"id": appli}, # l'environnement est défini par son ID
"description": description,
"endDate": format_date(dateDebut),
"startDate": format_date(dateFin)
}
Voici la représentation de ces données au format JSON tel qu’elle sera envoyée à Carto-SI :
{
"id": "a4589d53-56e7-4806-b184-16b3561e2268",
"label": "2.3.5",
"environnement": {
"id": "8910fe04-5a7e-aca9-cf49-117a9bf3c861"
},
"application": {
"id": "16a167f5-c3e8-c47d-a588-f9dbb5193cf8"
},
"description": "Livraison de la version 2.3.5 qui corrige les bugs #483 et #484.",
"endDate": 1661425200000,
"startDate": 1661425200000
}
Il suffit de faire un PUT
sur l’URL :
# URL de la livraison
URLAPI=HOST+"/api/v2/delivery/%s" % livraison["id"]
# enregistrement de la livraison
rep = requests.put(URLAPI, json=livraison, headers=headers)
La totalité du code est disponible dans le fichier put_delivery.py.
Voici notre livraison affichée dans Carto-SI.
Lecture d’une livraison¶
Pour récupérer une livraison, il suffit de faire un GET
sur son URL. L’URL de la livraison de l’exemple précédent est
/api/v2/delivery/a4589d53-56e7-4806-b184-16b3561e2268
car son id est a4589d53-56e7-4806-b184-16b3561e2268
.
Le fichier get_delivery.py est un exemple de code permettant d’afficher les données de la livraison.
Lister les livraisons¶
Un GET
sur l’URL /api/v2/delivery/
retourne la liste des livraisons.
Le fichier get_all_deliveries.py affiche la liste de l’ensemble des livraisons.