API - Communication outil Tiers

Cette documentation détaille les requêtes HTTP qui permettront à l'utilisateur d'interagir avec Pica pour le traitement des fiches de collisions et des observations, fournissant ainsi une interface entre le serveur Web et les programmes tiers.

Endpoints Disponibles :

Chiffrement du token

Chacun des endpoints de notre API exige l'utilisation d'un token pour y accéder. Dans un souci de renforcement de la sécurité, il est impératif que la valeur de ce token soit soumise à un processus de chiffrement, employant l'algorithme AES en mode ECB, et présentée au format hexadécimal.
L'accès à la clé de chiffrement requise peut être obtenu en faisant une demande auprès de l'administrateur Pica, qui sera en mesure de la fournir.

Vous trouverez ci-dessous un outil de chiffrement à votre disposition pour sécuriser votre token, ce qui vous permettra de mener des tests avec les différentes fonctionnalités offertes par les endpoints de notre API.

Token
Token chiffré

get En ligne

Description

Permet de récupérer les données des tables nécessaires à la création des Observations et des Fiches de collision.

URL

  • /picaweb/api/get

Method

  • GET

Params

  • token
    • STRING
    • Required : true
    • Token de l'utilisateur. Le token devra être chiffré en utilisant un algorithme de chiffrement AES, en mode ECB et au format hexadécimal.
  • objectType
    • STRING
    • Required : true
    • Le nom du type d'objet que l'on souhaite récupérer. Valeurs possibles : { "Animal", "Aerodrome", "Aeronef", "Helicoptere", "Moteur", "Eclairement", "PhaseVol", "VmcImc", "Nuage", "Precipitation", "NombreAnimaux", "Taille", "Dommage", "Effet", "Exploitant"}
    • Exemple: Animal
  • id
    • STRING
    • Required : false
    • L'ID de l'objet que l'on souhaite récupérer (optionnel, si l'ID n'est pas renseigné, alors il sera renvoyé une liste de tous les objets de type objectType)
    • Exemple: 5

Success response

  • Code : 200
  • Content : [{objectAsJson}] ou [{object1AsJson}, {object2AsJson}, ...]

Error responses

  • Code : 500 (Server error)
  • Content : {"error" : "Server error. Please try again."}
  • Cas : Catch exception
  • Code : 400 (Bad request)
  • Content : {"error": "Erreur 400 (Bad request) - {Description de l'erreur} "}
  • Cas : Paramètre manquant, ou le paramètre n'est pas reconnu.
  • Code : 457 (Bad request)
  • Content : {"error": "Erreur 457 (Token Invalid) - Token '{token}' invalide ou expiré."}
  • Cas : Le paramètre objectType ne fait pas partie de la liste des valeurs possibles.
  • Code : 404 (Not found)
  • Content : {"error":"Erreur 404 (Not Found) - {objectType} avec l'id '{id}' est introuvable."}
  • Cas : L'objet qui a pour l'id celui qui a été demandé n'a pas été trouvé.
  • Code : 403 (Forbidden Exception)
  • Content : {"error": "Erreur 403 (Forbidden Exception) - {objetType} non autorisé pour ce token"}
  • Cas : L'objet qui a pour l'id celui qui a été demandé n'est pas autorisé avec le token
  • Code : 403 (Forbidden Exception)
  • Content : {"error": "Erreur 403 (Forbidden Exception) - Token sans {objetType} associé"}
  • Cas : Aucun objetType n'a été autorisé avec le token

Testing

token (chiffré)
objectType
id

Response

getRiskLevel En ligne

Description

Permet de récupérer l'équivalent du tableau affiché sur la page Niveau de Risque Animalier (NRA)

URL

  • /picaweb/api/getRiskLevel

Method

  • GET

Params

  • token
    • STRING
    • Required : true
    • Token de l'utilisateur. Le token devra être chiffré en utilisant un algorithme de chiffrement AES, en mode ECB et au format hexadécimal..
  • aerodrome
    • STRING
    • Required : true
    • Le nom de l'aérodrome. L'aérodrome doit être autorisé dans le token au préalable.
    • Exemple: TOULOUSE-BLAGNAC
  • groupeTraficId
    • STRING
    • Required : false
    • L'id du groupe de trafic sur lequel on souhaite récupérer les niveaux de risque. Cette clé est optionnelle.
    • Exemple: 1
  • dateDeFin
    • STRING
    • Required : false
    • Date de fin de prise en compte des observation et collisions. Par défaut la date du jour. Le format attendu est : dd/mm/yyyy.
    • Exemple: 06/09/2023

Success response

  • Code : 200
  • Content : Un JSON avec la liste des niveau de risque par espèce.

Error responses

  • Code : 500 (Server error)
  • Content : {"error" : "Server error. Please try again."}
  • Cas : Catch exception
  • Code : 400 (Bad request)
  • Content : {"error": "Erreur 400 (Bad request) - {Description de l'erreur} "}
  • Cas : Paramètre manquant, ou le paramètre n'est pas reconnu.
  • Code : 457 (Bad request)
  • Content : {"error": "Erreur 457 (Token Invalid) - Token '{token}' invalide ou expiré."}
  • Cas : Le paramètre objectType ne fait pas partie de la liste des valeurs possibles.
  • Code : 404 (Not found)
  • Content : {"error":"Erreur 404 (Not Found) - {objectType} avec l'id '{id}' est introuvable."}
  • Cas : L'objet qui a pour l'id celui qui a été demandé n'a pas été trouvé.
  • Code : 403 (Forbidden Exception)
  • Content : {"error": "Erreur 403 (Forbidden Exception) - {objetType} non autorisé pour ce token"}
  • Cas : L'objet qui a pour l'id celui qui a été demandé n'est pas autorisé avec le token

Testing

token (chiffré)
aerodrome
groupeTraficId
dateDeFin

Response

createCollisionSheet En ligne

Description

Création de Fiche de collision.

URL

  • /picaweb/api/createCollisionSheet

Method

  • POST

Body (JSON)

  • token
    • STRING
    • Required : true
    • Token de l'utilisateur. Le token devra être chiffré en utilisant un algorithme de chiffrement AES, en mode ECB et au format hexadécimal.
  • data
    • STRING
    • Required : true
    • Les données de la fiche de collision. Les clefs attendues sont décrites en dessous.
  • test
    • STRING
    • Required : false
    • Le paramètre 'test' ne peut prendre que 'true' comme valeur. Sinon, veuillez ne pas renseigner cette clé. Si test='true' est bien renseigné, l'appel retournera ID de fiche de collision = 1, ou relèvera les erreurs comme en situation réelle, mais la fiche de collision ne sera pas enregistrée, ni modifiée.

data

  • picaId
    • STRING
    • Required : false
    • L'id d'une fiche déjà créée. Cette clef est optionnelle et permet à un utilisateur de modifier une fiche qu'il aurait déjà créée. Si picaId n'est pas présent, une nouvelle fiche sera créée. Si l'administrateur du site web a déjà validé la fiche, elle ne sera plus modifiable via ce procédé.
    • Exemple: 5080
  • suspicionDeCollision
    • STRING
    • Required : false
    • Si la fiche témoigne d'une suspicion de collision ou non. (true ou false)
    • Exemple: true
  • FODFaune
    • STRING
    • Required : false
    • Si l'oiseaux a été trouvé mort ou non. (true ou false)
    • Exemple: true
  • aerodrome
    • STRING
    • Required : true
    • Le nom de l'aérodrome. L'aérodrome doit être autorisé dans le token au préalable. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: TOULOUSE-BLAGNAC
  • dateUTC
    • STRING
    • Required : true
    • Date de la collision en UTC. Le format attendu est : dd/mm/yyyy.
    • Exemple: 06/09/2023
  • heureUTC
    • STRING
    • Required : false
    • Heure de la collision en UTC. Le format attendu est : HH:MM.
    • Exemple: 12:30
  • eclairement
    • STRING
    • Required : false
    • Le label de l'éclairement. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: J
  • piste
    • STRING (max 255 char)
    • Required : false
    • La piste où a eu lieu la collision.
    • Exemple: Piste A
  • vitesse
    • STRING
    • Required : false
    • La vitesse de collision. Doit être un INTEGER.
    • Exemple: 200
  • piloteAverti
    • STRING
    • Required : false
    • Si le pilote est averti ou non. (true ou false)
    • Exemple: true
  • immat
    • STRING (max 255 char)
    • Required : false
    • L'immatriculation de l'aéronef.
    • Exemple: VOE27EX
  • exploitantId
    • STRING
    • Required : false
    • ServerId de l'exploitant aérien. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: 1
  • aeronef
    • STRING
    • Required : false
    • Le code OACI de l'aéronef. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: A109
  • moteur
    • STRING
    • Required : false
    • La désignations du moteur. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: 4E20A
  • helicoptere
    • STRING
    • Required : false
    • Le label de l'hélicoptère. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: P
  • altitude
    • STRING
    • Required : false
    • L'altitude de collision. Doit être un INTEGER.
    • Exemple: 200
  • hauteur
    • STRING
    • Required : false
    • La hauteur de collision. Doit être un INTEGER.
    • Exemple: 200
  • phaseVol
    • STRING
    • Required : false
    • Le label de la phase de vol. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: INC
  • animal
    • STRING
    • Required : true
    • Le nom commun de l'animal. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: OISEAU_NON_IDENTIFIE
  • taille
    • STRING
    • Required : false
    • La taille de l'animal. On attend ici le label d'un objet Taille. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: G
  • nombreAnimauxApercus
    • STRING
    • Required : false
    • Le nombre d'animaux aperçus. On attend ici le label d'un objet NombreAnimaux. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: A
  • nombreAnimauxTouches
    • STRING
    • Required : false
    • Le nombre d'animaux touchés. On attend ici le label d'un objet NombreAnimaux. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: A
  • radome
    • STRING
    • Required : false
    • Présence de dégâts sur le radôme. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • parebrise
    • STRING
    • Required : false
    • Présence de dégâts sur le pare-brise. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • moteur1
    • STRING
    • Required : false
    • Présence de dégâts sur le moteur1. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • moteur2
    • STRING
    • Required : false
    • Présence de dégâts sur le moteur2. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • moteur3
    • STRING
    • Required : false
    • Présence de dégâts sur le moteur3. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • moteur4
    • STRING
    • Required : false
    • Présence de dégâts sur le moteur4. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • nez
    • STRING
    • Required : false
    • Présence de dégâts sur le nez à l'exception du radôme et du pare-brise. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • helice
    • STRING
    • Required : false
    • Présence de dégâts sur l'hélice. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • aile
    • STRING
    • Required : false
    • Présence de dégâts sur les ailes. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • fuselage
    • STRING
    • Required : false
    • Présence de dégâts sur le fuselage. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • train
    • STRING
    • Required : false
    • Présence de dégâts sur le train d'atterrissage. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • empennage
    • STRING
    • Required : false
    • Présence de dégâts sur l'empennage. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • feux
    • STRING
    • Required : false
    • Présence de dégâts sur les phares. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • rotor
    • STRING
    • Required : false
    • Présence de dégâts sur le rotor. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • otherAvionPart
    • STRING
    • Required : false
    • Présence de dégâts sur une autre partie de l'avion. On attend ici le label d'un objet Dommage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: E
  • effets
    • STRING
    • Required : false
    • Effets de la collision. On attend ici les labels des objet Effet, séparés par une virgules. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: DEC.INT,ATTPRUD
  • feuxEclats
    • STRING
    • Required : false
    • Si les feux à éclats étaient allumés. (true ou false)
    • Exemple: true
  • pharesAtterrissage
    • STRING
    • Required : false
    • Si les phares d'atterrissage étaient allumés. (true ou false)
    • Exemple: true
  • conditions
    • STRING
    • Required : false
    • Les conditions météorologiques VMC-IMC. On attend ici le nom d'un objet VmcImc. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: V
  • nuage
    • STRING
    • Required : false
    • La présence ou non de nuages. On attend ici le label d'un objet Nuage. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: COUV
  • precipitation
    • STRING
    • Required : false
    • Les conditions météorologiques. On attend ici le label d'un objet Precipitation. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: Pluie
  • cout
    • STRING
    • Required : false
    • Le coût de la collision. Doit être un FLOAT.
    • Exemple: 2000.0
  • observations
    • STRING
    • Required : false
    • Observations supplémentaires.
    • Exemple: Aucune
  • aubesFansHS
    • STRING
    • Required : false
    • Le nombre de aubes HS. Doit être un INTEGER.
    • Exemple: 2
  • retard
    • STRING
    • Required : false
    • Si le vol a pris du retard ou non. (true ou false)
    • Exemple: true
  • serieux
    • STRING
    • Required : false
    • Si la collision est sérieuse ou non. (true ou false)
    • Exemple: true
  • identite
    • STRING (max 255 char)
    • Required : false
    • Informations sur l'identité de la personne.
    • Exemple: Bleu122 Operateur

Success response

  • Code : 200
  • Content : {"collisionSheetId": X} X étant l'ID de la fiche de collision créée.

Error responses

  • Code : 500 (Server error)
  • Content : {"error" : "Server error. Please try again."}
  • Cas : Catch exception
  • Code : 400 (Bad request)
  • Content : {"error": "Erreur 400 (Bad request) - {Description de l'erreur} "}
  • Cas : Paramètre manquant, ou le paramètre n'est pas reconnu.
  • Code : 457 (Bad request)
  • Content : {"error": "Erreur 457 (Token Invalid) - Token '{token}' invalide ou expiré."}
  • Cas : Le paramètre objectType ne fait pas partie de la liste des valeurs possibles.
  • Code : 404 (Not found)
  • Content : {"error":"Erreur 404 (Not Found) - L'objet avec le descriptif '{descriptif}' est introuvable."}
  • Cas : L'objet qui a pour descriptif celui qui a été demandé n'a pas été trouvé.
  • Code : 403 (Forbidden Exception)
  • Content : {"error": "Erreur 403 (Forbidden Exception) - {objetType} non autorisé pour ce token"}
  • Cas : L'objet qui a pour l'id celui qui a été demandé n'est pas autorisé avec le token

Testing

token (chiffré)
data

Response

createObservation En ligne

Description

Création d'Observation.

URL

  • /picaweb/api/createObservation

Method

  • POST

Body (JSON)

  • token
    • STRING
    • Required : true
    • Token de l'utilisateur. Le token devra être chiffré en utilisant un algorithme de chiffrement AES, en mode ECB et au format hexadécimal.
  • data
    • STRING
    • Required : true
    • Les données de l'observation'. Les clefs attendues sont décrites en dessous.
  • test
    • STRING
    • Required : false
    • Le paramètre 'test' ne peut prendre que 'true' comme valeur. Sinon, veuillez ne pas renseigner cette clé. Si test='true' est bien renseigné, l'appel retournera ID de observation = 1, ou relèvera les erreurs comme en situation réelle, mais l'observation ne sera pas enregistrée, ni modifiée.

data

  • picaId
    • STRING
    • Required : false
    • L'id d'une observation déjà créée. Cette clef est optionnelle et permet à un utilisateur de modifier une observation qu'il aurait déjà créée. Si picaId n'est pas présent, une nouvelle observation sera créée.
    • Exemple: 5080
  • aerodrome
    • STRING
    • Required : true
    • Le nom de l'aérodrome. L'aérodrome doit être autorisé dans le token au préalable. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: TOULOUSE-BLAGNAC
  • nbIndividus
    • STRING
    • Required : true
    • Le nombre d'individu observés. Doit être un INTEGER > 0.
    • Exemple: 200
  • animal
    • STRING
    • Required : true
    • Le nom commun de l'animal. Les valeurs peuvent être récupérées via l'endpoint get.
    • Exemple: OISEAU_NON_IDENTIFIE
  • dateUTC
    • STRING
    • Required : true
    • Date de la collision en UTC. Le format attendu est : dd/mm/yyyy.
    • Exemple: 06/09/2023

Success response

  • Code : 200
  • Content : {"observationId": X} X étant l'ID de l'objet observation créé.

Error responses

  • Code : 500 (Server error)
  • Content : {"error" : "Server error. Please try again."}
  • Cas : Catch exception
  • Code : 400 (Bad request)
  • Content : {"error": "Erreur 400 (Bad request) - {Description de l'erreur} "}
  • Cas : Paramètre manquant, ou le paramètre n'est pas reconnu.
  • Code : 457 (Bad request)
  • Content : {"error": "Erreur 457 (Token Invalid) - Token '{token}' invalide ou expiré."}
  • Cas : Le paramètre objectType ne fait pas partie de la liste des valeurs possibles.
  • Code : 404 (Not found)
  • Content : {"error":"Erreur 404 (Not Found) - L'objet avec le descriptif '{descriptif}' est introuvable."}
  • Cas : L'objet qui a pour descriptif celui qui a été demandé n'a pas été trouvé.
  • Code : 403 (Forbidden Exception)
  • Content : {"error": "Erreur 403 (Forbidden Exception) - {objetType} non autorisé pour ce token"}
  • Cas : L'objet qui a pour l'id celui qui a été demandé n'est pas autorisé avec le token

Testing

token (chiffré)
data

Response