La méthode la plus facile pour récupérer les créneaux de diffusion d’une radio ou d’une émission est d’utiliser la route custom dédiée a ça. C’est possible d’utiliser directement l’API de Directus avec un peu plus de challenge.
Une seule route est définie, seul quelques paramètres d’URL permettent de changer son comportement
NoneBashCSSCC#ElixirErlangGoGraphQLGroovyHaskellHTMLINIJavaJavaScriptJSONKotlinLispLuaMermaid DiagramObjective-COCamlPerlPHPPowershellPythonRubyRustScalaSQLSoliditySwiftTOMLTypeScriptVisual BasicYAMLZigCopier
GET /api-corlab/schedulesSa définition Joi (pour debug) est
NoneBashCSSCC#ElixirErlangGoGraphQLGroovyHaskellHTMLINIJavaJavaScriptJSONKotlinLispLuaMermaid DiagramObjective-COCamlPerlPHPPowershellPythonRubyRustScalaSQLSoliditySwiftTOMLTypeScriptVisual BasicYAMLZigCopier
Joi.object({
from: Joi.date().optional(),
to: Joi.date().optional(),
lang: Joi.string().optional(),
radio: Joi.number(),
program: Joi.number()
}).xor('program', 'radio');Les paramètres de l’API sont simples, sous la forme de /api-corlab/schedules?radio=1&lang=fr
Param
Type
Commentaire
radio
number
La radio cible (incompatible avec program), permet de récupérer tout les créneaux de toute les émissions diffusés par la radio
program
number
L’émission cible (incompatible avec radio), récupère tout les créneaux de l’émission
from
date
Date de début de génération de créneau (obligatoire)
to
date
Date de fin de génération de créneau (obligatoire)
lang
string
Langue des contenus retournés, par défaut fr-FR, autres dispo br-BR, en-US, ga-GA
InformationsAvertissementAstuce
Format des dates YYYY-MM-dd
La réponse du serveur est composée de tout les jours de la période demandée contenant tout les créneaux
NoneBashCSSCC#ElixirErlangGoGraphQLGroovyHaskellHTMLINIJavaJavaScriptJSONKotlinLispLuaMermaid DiagramObjective-COCamlPerlPHPPowershellPythonRubyRustScalaSQLSoliditySwiftTOMLTypeScriptVisual BasicYAMLZigCopier
{
"message": "done", -> sera surement supprimé
"data": [ -> liste des jours
{
"date": "2023-03-05T00:00:00.000Z", -> jour cible
"schedules": [] -> créneaux de ce jour
},
{
"date": "2023-03-06T00:00:00.000Z",
"schedules": [
{
"id": 10706, -> ID de l'émission
"title": "Billboard", -> Nom de l'émission
"is_cobroadcasted_by": null, -> Si il s'agit d'une émission diffusée par une autre radio alors on la spécifie
"image": "https://localhost:8055/assets/6ad69de0-10b6-4a8e-8f89-640117fe736e", -> URL de l'illustration de l'émission
"time_start": "15:29:00", -> Heure de début
"time_end": "16:29:00" -> Heure de fin
},
]
},
],
"debug": { -> Sera supprimé ou accessible avec un ?debug
"fields": [
"*",
"program.translations.*",
"program.id",
"program.image",
"radio.name",
"radio.id",
"program.radio.*"
],
"filter": {
"radio": {
"_eq": "12"
}
}
}
}