State API
Brainsonic Live is relying on an in-house application called Event Engine. For each digital event, an Event Engine instance is created.
This API allows third party applications to get live information about an Event Engine instance configuration and state.
We assume that this third party application is splittersplited into a frontend application that is executed on client environnementenvironment and a backend application that runs on a server.
ThoseThis information areis provided thanks to two requests :
getStateURLintends to be requested from a backend application. This returns the endpoint URL that frontend application will need torequestrequest.getStateallows the frontend application to request Event Engine instance state every 5s.

(1)
- The frontend application
récupère/metgetàthejourStatesaURLconfiguration.from the backend application(2) - The
requêtebackendcôtéapplicationserveurgetvers l'administrationthe Event Engineretourneinstancel'urlstateduURL
service- Carries
dualecteur.(3)bearerL'urltoken.duJWTserviceHS256d'étatformat, - The token
(bearer)isausignedformatwithJWT HS256, token signé avec una secret (clefAPId'API)key) - Contains
neancontientAPIqueaccessl'IDassociée(aud)àandlaanclef d'API (aud) et laexpiration dated'expiration(exp) - TTL
conseillérangede=3030sà-60s.60s - To be cached on backend for 15 minutes
L'url
d'étatdu lecteur retourne les informations concernant le lecteur.La requete (2) est porteuse d'unetdu token (exp).duservice - Carries
- Every
(State5APIseconds,URL)the(requêtefrontend3)applicationchangepullavec l'horloge du serveurthe Event Enginetoutesinstancelesstate30- Response
Elleisrestecachedvalableforpendant51seconds
minutes.heure.Sur - Response
Exemple Eventuse Enginecase
- Client
unapplicationcacherequestdethe5s.StateIlURLesttoconseillébackenddeapplication - If
mettretheàbackendjourapplicationtoutesobtainedlesthe State URL more than 15 minutes ago then it need to be requested again (requêterequest1)2).
Thereavecisunenomiseneedento maintain a state on the backend server. A 15 minutes cachesuronvotrerequestserveur1deis15 minutes.Exemple de cas d'usage- enough.
- L'application cliente demande sa configuration contenant l'url de requêtage d'état (requête 1)
- Si le le serveur d'application a récupéré l'url de requêtage du service d'état il y a plus de 15min alors il la récupère à nouveau (requête 2). Il n'est pas nécessaire de maintenir un état sur le serveur pour cela. Une valeur de cache de ~15min dans la réponse à (requete 1) suffit.
- L'application utilise l'url d'API Event Engine (requête 3) pour récupérer l'état du site en pull période >= 5s
- L'application cliente redemande l'url de requêtage d'état (requête 1) toute les ~15min
get State API URL
propriétés de la réponse en cas de succès
- stateUrl {string} url du service d'état à appeler en GET
requete Method GET
requete Header bearer:<JWT>
reponse Cache: no-cache
response Status
- Success 200
- Erreur Unauthorized Status 401
- autre erreur Status 400
Le token porté par la requête est un Json Web Token encodé avec un secret partagé entre Event Engine et le serveur de l'application
- alg: HS256
- aud: <your site/application name>
- exp: 30 ou 60s
get Sate API
propriétés de la réponse en cas de succès
- playerState
stringprelive|live1|live2|postlive|vod - playerManifest
stringurl du hls - countdown
objectpropriétés du countdown- visible
booleantruedécompte visible oufalsedécompte caché - end
unix timestampdate de fin du décompte - serverTime
unix timestamptemps actuel du serveur
- visible
requete Method GET
response Cache 5s
response Status
- Success 200
- Erreur Unauthorized Status 401
- autre erreur Status 400
Limitations
get State API URL
- fréquence maximum 1 appel par seconde
- quota 4 appels maximum par minute