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.

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 |
/pcontrol/get_counter_value/nome_contatore | Recupera il valore di un contatore.
nome_contatore = nome del contatore su cui operare |
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 |
/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: |
/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_
.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.