Documentazione API HTTP

La documentazione dell’API HTTP ti spiegherà come controllare il tuo tabellone video da remoto, sia tramite un dispositivo Stream Deck, sia tramite una chiamata di comando curl dalla linea di comando, sia tramite un software sviluppato da te.

Cosa sono le API e le API HTTP?

Un’API (Application Programming Interface) è un elemento che fornisce un modo per far interagire altri sistemi con esso. Esistono molti tipi di API, per questo le ho definite “elementi”, e possono fornire molti tipi di interazioni: si possono inviare dati ad esso, raccogliere dati da quel sistema o controllarlo a distanza.

Nel nostro caso, abbiamo implementato un’API HTTP, il che significa che abbiamo una sorta di server web che attende di ricevere le richieste come se si trattasse di una richiesta a un sito web e di eseguire le operazioni in base all’indirizzo digitato.

La parte importante è che si tratta di un server web, quindi è possibile inviare richieste API HTTP utilizzando qualsiasi programma in grado di richiedere pagine web (il vostro browser preferito, l’applicazione ricciolo su Linux e OSX, ecc.) e, cosa più importante, è possibile farlo da qualsiasi computer, tablet o telefono cellulare che si trovi sulla stessa rete, consentendo di avere più tabelloni LDS (o LDSperimetrale) controllati da un punto centralizzato, il vostro centro di controllo.

Per chiamare questa API HTTP, è necessario interrogare un url (URL è il nome dato all’indirizzo composto da protocollo, computer, porta e richiesta) come se fosse una “pagina web”. Ma dov’è questa pagina web? Sto facendo un po’ di confusione! Il modo più semplice è quello di aprire con il vostro browser preferito la richiesta che desiderate. L’indirizzo da inserire sarà questo: https://IP_DEL_ORDENADOR:PUERTO_CONFIGURADO/PETICION_A_EFECTUAR

Pertanto, e in sintesi:

  • L’indirizzo IP del computer dipende dalla configurazione di rete dell’apparecchiatura. Si consiglia di impostarlo su fisso per evitare che venga modificato e che le richieste passino a un altro computer senza che l’utente se ne accorga.
  • La porta è indicata nella configurazione del terminale, contrassegnata da una freccia rossa.
  • La richiesta dipenderà dall’ordine che si vuole dare a LDSscoreboard (lo vedremo tra poco).

Con questa documentazione HTTP API puoi imparare a controllare il tabellone video da remoto in modo semplice.

Documentazione e configurazione dell'API HTTP di LDSscoreboard

Nel caso mostrato, l’IP del nostro computer è 192.168.1.35 e la porta configurata è 8080.

Descrizione API

L’obiettivo è avere un’API per tutti i comandi di controllo di LDSscoreboard, tranne che per la modifica dei contenuti. In questo modo è possibile controllare centralmente tutte le schermate desiderate, pubblicare contenuti promozionali o elementi di bookmark.

controllo della diapositiva

Comando Parametri
/pcontrol/show_slide/<SLIDE_NAME> Fa apparire sullo schermo la diapositiva indicata.

slide_slide_name = Nome della diapositiva da visualizzare

Controllo del contatore

Comando Parametri
/pcontrol/increment_counter/NAME_CONTER Incrementa il contatore passato come parametro

nome_contatore = nome del contatore su cui operare

/pcontrol/decrement_counter/NAME_CONTER Decrementa il contatore passato come parametro

nome_contatore = nome del contatore su cui operare

/pcontrol/set_counter/NAME_COUNTER/VALUE Assegna un valore a un determinato contatore.

nome_contatore = nome del contatore su cui operare
valore = valore numerico da assegnare

/pcontrol/get_counter_value/nome_contatore Recupera il valore di un contatore.

nome_contatore = nome del contatore su cui operare
valore = valore numerico da assegnare

roster dei giocatori

Comando Parametri
/roster/get_local_team_name Controllare il nome della squadra di casa
/roster/get_guest_team_name Controllare il nome della squadra ospite
/roster/get_team_players_count/[local|guest] Restituisce il numero di giocatori della squadra di casa o di quella ospite.
/roster/get_player_information/[local|guest]/PLAYER_INDEX Restituisce le informazioni del giocatore indicato (nome, numero, ecc.).
/roster/increment_player_score/[local|guest]/PLAYER_INDEX Aumenta il punteggio associato al giocatore con l’indice indicato.
/roster/decrement_player_score/[local|guest]/PLAYER_INDEX Diminuisce il punteggio associato al giocatore con l’indice indicato.
/roster/get_player_score/[local|guest]/PLAYER_INDEX Recupera il punteggio associato al giocatore con l’indice indicato.
/roster/increment_player_fauls/[local|guest]/PLAYER_INDEX Aumenta i falli associati al giocatore con la valutazione indicata.
/roster/decrement_player_fauls/[local|guest]/PLAYER_INDEX Diminuisce i falli associati al giocatore con l’indice indicato.
/roster/get_player_fauls/[local|guest]/PLAYER_INDEX Recupera i falli associati al giocatore con l’indice indicato.
/roster/increment_player_cautions/[local|guest]/PLAYER_INDEX Aumenta il numero di ammonizioni associate al giocatore con la valutazione indicata.
/roster/decremento_giocatore_cauzioni/[local|guest]/PLAYER_INDEX Diminuire le ammonizioni associate al giocatore con l’indice indicato.
/roster/get_player_cautions/[local|guest]/PLAYER_INDEX Recupera le ammonizioni associate al giocatore con l’indice indicato.

 

controllo del timer

Comando Parametri
/pcontrol/start_timer/NOMBRE_TIMER Avvia il timer nella direzione in cui è stato impostato.

timer_name = nome del timer (o del cronometro) su cui operare

/pcontrol/stop_timer/NAME_TIMER Arresta il timer. Il suo valore non viene alterato.

timer_name = nome del timer (o del cronometro) su cui operare

/pcontrol/reset_timer/NOMBRE_TIMER Riporta il timer al valore iniziale definito nella sua configurazione.

timer_name = nome del timer (o del cronometro) su cui operare

/pcontrol/get_timer_time/NAMBRE_TIMER Recupera l’ora impostata da un timer.

timer_name = nome del timer (o del cronometro) su cui operare

Etichette dinamiche e contatori automatici

Comando Parametri
/gc/get_dynamic_label/VAR Recupera il valore assegnato alla variabile dinamica.

VAR = Identificatore della variabile da interrogare

/gc/set_dynamic_label/VAR/ARG1 Modifica il valore assegnato alla variabile dinamica

VAR = Identificatore della variabile da assegnare
ARG1 = Nuovo valore da assegnare

/gc/get_automatic_variable/VAR Ottiene il valore di una variabile automatica. Queste variabili vengono calcolate quando si utilizza la rosa dei giocatori.

VAR = Nome della variabile

Variabili esistenti:
local_team_score : punteggio della squadra locale
local_team_fauls: falli commessi dalla squadra di casa
local_team_fauls_resettable: falli commessi dalla squadra di casa, ma resettabili.
guest_team_score: punteggio della squadra ospite
guest_team_fauls: falli commessi dalla squadra ospite
guest_team_fauls_resettable: falli della squadra ospite, ma resettabili.

/gc/reset_automatic_variable/VAR Azzera il contatore delle variabili automatiche che possono essere reinizializzate.

VAR: Nome della variabile resettabile (local_team_fauls_resetable o guest_team_fauls_resetable)

Esempio di utilizzo dell’API HTTP di LDSscoreboard

Vediamo un esempio per capire meglio come funziona l’API HTTP descritta in questa documentazione. Supponiamo di aver definito un marcatore che contiene una diapositiva chiamata “diapositiva1”; per richiedere al sistema di aprire la diapositiva1, dovremmo conoscere l’IP del computer e la porta, dato che conosciamo già il nome.

Se prendiamo l’immagine in cima alla pagina, vedremo che abbiamo l’ip 192.168.1.35 e la porta 8080, quindi dovremmo fare una richiesta HTTP (aprire la pagina) all’indirizzo http://192.168.1.35:8080 /pcontrol/show_slide/slide1

Per farlo, possiamo aprire un browser e inserire l’indirizzo nella barra degli indirizzi:

Quindi, se LDSscoreboard è in esecuzione, si dovrebbe vedere la diapositiva denominata diapositiva1 diventare attiva.

IMPORTANTE

Se il nome della diapositiva contiene uno spazio, poiché si tratta di un carattere speciale, dobbiamo sostituirlo con %20, cioè “la mia diapositiva” sarà tradotto come “my%20slide”.

Strumenti per effettuare chiamate API HTTP

Naturalmente, non siete limitati a effettuare chiamate HTTP da un browser; abbiamo fatto così perché è uno strumento che sicuramente avete a portata di mano e conoscete, ma ci sono molti altri modi per farlo.

ricciolo

curl è uno strumento open source per le richieste HTTP. È disponibile su Linux, OSX e anche sulle versioni più recenti di Windows 10. È molto semplice da usare, come mostrato nell’immagine seguente:

Javascript

È possibile creare un programma Javascript, utilizzando jquery, in cui viene effettuata una chiamata HTTP, ad esempio con questo codice:

timer_identifier=”il mio timer”;

$.getJSON(`/pcontrol/start_timer/${timer_identifier}`)
.done(function (data) {
se (data.status != 0) {
console.error(`Errore nell’avvio del timer: ${JSON.stringify(data)} `);
}
})
.fail(function (err) {
se (err.status = 200)
console.error(`Errore nell’avvio del timer [${JSON.stringify(err)}]`);
});

e qualsiasi linguaggio di programmazione consente di effettuare tali chiamate.