Documentación de la API HTTP

Mediante la documentación de la HTTP API podrás saber cómo puedes controlar tu videomarcador de forma remota, ya sea mediante un dispositivo tipo Stream Deck, una llamada al comando curl a través de la línea de comandos, o mediante un software que desarrolles tú.

¿Qué es una API y una HTTP API?

Una API (Interfaz de programación de aplicaciones) es un elemento que proporciona un forma para que otros sistemas puedan interactuar con él. Hay muchos tipos de API, por eso me he referido a él como un «elemento», y puede proporcionar muchos tipos de interacciones: puede enviarle datos, recopilar datos de ese sistema o controlarlo de forma remota.

En nuestro caso, hemos implementado una API HTTP, lo que significa que tenemos una especie de servidor web, que está esperando recibir tus solicitudes como si estuvieras solicitando un sitio web, y hacer cosas en función de la dirección que escribiste.

Entonces, la parte importante aquí es que es un servidor web, por lo que puedes enviar solicitudes de API HTTP utilizando cualquier programa que pueda solicitar páginas web (su navegador favorito, la aplicación curl en Linux y OSX, etc.) y, lo que es más importante, puedes hacerlo desde cualquier ordenador, tablet, o teléfono móvil, que esté en la misma red permitiéndote tener varios LDSscoreboards (o LDSperimetral) controlados desde un punto centralizado, tu centro de control.

Para llamar a esta API HTTP, debes consultar una url (URL es el nombre que recibe la dirección compuesta por el protocolo, ordenador, puerto y petición) como si fuera una «página web». Pero, ¿dónde está esa página web? Que me estoy haciendo un lio!!. La forma más sencilla es abrir con tu navegador preferido la petición que quieres. La dirección a poner tendrá la siguiente forma: https://IP_DEL_ORDENADOR:PUERTO_CONFIGURADO/PETICION_A_EFECTUAR

Por tanto, y en resumen:

  • la IP del ordenador depende de la configuración de red del equipo. Te recomendamos que la pongas fija para evitar que cambie y las peticiones vayan a otro ordenador sin darte cuenta.
  • El puerto se indica en la configuración de terminales, marcada con una flecha roja.
  • La petición dependerá de la orden que le quieras dar a LDSscoreboard (lo veremos en breve).

Mediante esta documentación de la HTTP API podrás aprender cómo controlar remotamente el videomarcador de forma sencilla.

Documentación y configuración de la API HTTP de LDSscoreboard

En el caso mostrado, la IP de nuestro ordenador es 192.168.1.35 y el puerto configurado es el 8080.

Descripción de la API

El objetivo es disponer de una API para todos los comandos de control de LDSscoreboard, excepto la edición de contenido. De esta forma se podrá controlar de forma centralizada todos las pantallas que se deseen, publiquen contenido promocional o elementos de marcador.

Control de slide

Comando Parámetros
/pcontrol/show_slide/<NOMBRE_SLIDE> Provoca que se presente el slide indicado en la pantalla.

nombre_slide = Nombre del slide que se desea mostrar

Control de contadores

Comando Parámetros
/pcontrol/increment_counter/NOMBRE_CONTADOR Incrementa el contador que se pasa como parámetro

nombre_contador = Nombre del contador sobre el que operar

/pcontrol/decrement_counter/NOMBRE_CONTADOR Decrementa el contador que se pasa como parámetro

nombre_contador = Nombre del contador sobre el que operar

/pcontrol/set_counter/NOMBRE_CONTADOR/VALOR Asigna un valor a un contador determinado.

nombre_contador = Nombre del contador sobre el que operar
valor = valor numérico a asignar

/pcontrol/get_counter_value/NOMBRE_CONTADOR Recupera el valor de un contador.

nombre_contador = Nombre del contador sobre el que operar
valor = valor numérico a asignar

Roster de jugadores

Comando Parámetros
/roster/get_local_team_name Consulta el nombre del equipo local
/roster/get_guest_team_name Consulta el nombre del equipo visitante
/roster/get_team_players_count/[local|guest] Devuelve el número de jugadores en el equipo local o visitante
/roster/get_player_information/[local|guest]/PLAYER_INDEX Devuelve la informacion del jugador indicado (nombre, número, etc..)
/roster/increment_player_score/[local|guest]/PLAYER_INDEX Incrementa la puntuación asociada al jugador con el índice indicado
/roster/decrement_player_score/[local|guest]/PLAYER_INDEX Decrementa la puntuación asociada al jugador con el índice indicado
/roster/get_player_score/[local|guest]/PLAYER_INDEX Recupera la puntuación asociada al jugador con el índice indicado
/roster/increment_player_fauls/[local|guest]/PLAYER_INDEX Incrementa las faltas asociadas al jugador con el índice indicado
/roster/decrement_player_fauls/[local|guest]/PLAYER_INDEX Decrementa las faltas asociadas al jugador con el índice indicado
/roster/get_player_fauls/[local|guest]/PLAYER_INDEX Recupera las faltas asociadas al jugador con el índice indicado
/roster/increment_player_cautions/[local|guest]/PLAYER_INDEX Incrementa las amonestaciones asociadas al jugador con el índice indicado
/roster/decrement_player_cautions/[local|guest]/PLAYER_INDEX Decrementa las amonestaciones asociadas al jugador con el índice indicado
/roster/get_player_cautions/[local|guest]/PLAYER_INDEX Recupera las amonestaciones asociadas al jugador con el índice indicado

 

Control de cronómetros

Comando Parámetros
/pcontrol/start_timer/NOMBRE_TIMER Inicia el temporizador en el sentido en el que se ha definido.

nombre_timer = Nombre del timer ( o cronómetro ) sobre el que operar

/pcontrol/stop_timer/NOMBRE_TIMER Detiene el temporizador. No se altera su valor.

nombre_timer = Nombre del timer ( o cronómetro ) sobre el que operar

/pcontrol/reset_timer/NOMBRE_TIMER Resetea el temporizador al valor inicial definido en su configuracion.

nombre_timer = Nombre del timer ( o cronómetro ) sobre el que operar

/pcontrol/get_timer_time/NOMBRE_TIMER Recupera el tiempo que marca un temporizador.

nombre_timer = Nombre del timer ( o cronómetro ) sobre el que operar

Etiquetas dinámicas y contadores automáticos

Comando Parámetros
/gc/get_dynamic_label/VAR Recupera el valor que tiene asignado la variable dinámica

VAR = Identificador de la variable a consultar

/gc/set_dynamic_label/VAR/ARG1 Cambia el valor que tiene asignada la variable dinámica

VAR = Identificador de la variable a asignar
ARG1 = Nuevo valor a asignar

/gc/get_automatic_variable/VAR Obtiene el valor de una variable automática. Estas variables se calculan cuando se emplea el roster de jugadores.

VAR = Nombre de la variable

Variables existentes:
local_team_score : puntuación equipo local
local_team_fauls: faltas efectuadas por el equipo local
local_team_fauls_resetable: faltas efectuadas por el equipo local, pero es reseteable.
guest_team_score: puntacion equipo visitante
guest_team_fauls: faltas del equipo visitante
guest_team_fauls_resetable: faltas del equipo visitante, pero es reseteable.

/gc/reset_automatic_variable/VAR Pone el contador a cero de las variables automáticas que son reniciables.

VAR: Nombre de la variable reseteable (local_team_fauls_resetable o guest_team_fauls_resetable)

Ejemplo de uso de la HTTP API de LDSscoreboard

Veamos un ejemplo para tener claro el funcionamiento que te describimos en esta documentación sobre la HTTP API. Supongamos que tenemos definido un marcador que contiene un slide que se llama «slide1», para solicitar al sistema que se abra el slide1, deberíamos saber la ip del ordenador y el puerto, ya que el nombre ya lo sabemos.

Si tomamos la imagen de la parte superior de la pàgina, veremos que tenemos la ip 192.168.1.35 y el puerto 8080, por lo que deberíamos hacer una petición HTTP (abrir la página) a la dirección http://192.168.1.35:8080/pcontrol/show_slide/slide1

Para hacerlo, podemos abrir un navegador y poner la dirección en la barra de direcciones:

Seguidamente, si tenemos LDSscoreboard en funcionamiento deberíamos ver que el slide llamado slide1 se activa.

IMPORTANTE

Si el nombre del slide contiene algún espacio, al ser un carácter especial, deberemos sustituirlo por %20, es decir «mi slide» se traducirá como «mi%20slide».

Herramientas para efectuar llamadas a la  HTTP API

Por supuesto, no estás restringido a tener que hacer las llamadas HTTP desde un navegador, lo hemos hecho así por que es una herramienta que seguro que tienes a mano y conoces, pero hay otras muchas formas de hacerlo.

curl

curl es una herramienta para efectuar peticiones HTTP de código abierto. Está disponible en Linux, OSX, y también en las últimas versiones de Windows 10. Su uso es muy sencillo como se ve en la siguiente imagen:

Javascript

Puedes hacerte un programa en Javascript, empleando jquery, donde se efectue una llamada HTTP, por ejemplo con este código:

timer_identifier=»my timer»;

$.getJSON(`/pcontrol/start_timer/${timer_identifier}`)
.done(function (data) {
if (data.status != 0) {
console.error(`Error starting timer: ${JSON.stringify(data)} `);
}
})
.fail(function (err) {
if (err.status != 200)
console.error(`Error starting timer [${JSON.stringify(err)}]`);
});

y cualquier lenguaje de programación te permitirá hacer este tipo de llamadas.