Documentación de la API HTTP

A través de la documentación de la API HTTP aprenderá cómo controlar su marcador de video de forma remota, ya sea mediante un dispositivo tipo Stream Deck, una llamada de comando curl a través de la línea de comandos, o mediante software que usted mismo desarrolle.

¿Qué es una API y una API HTTP?

Una **API** (Interfaz de programación de aplicaciones) es un elemento que proporciona una forma para que otros sistemas interactúen con él. Existen muchos tipos de API, por lo que me he referido a ella 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 sus solicitudes como si estuviera solicitando un sitio web, y realiza acciones según la dirección que usted escribió.

Así que la parte importante aquí es que es un servidor web, por lo que puede enviar solicitudes a la API HTTP usando 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, puede hacerlo desde cualquier computadora, tableta o teléfono móvil que esté en la misma red, permitiéndole tener múltiples LDSscoreboards (o LDSperimetral) controlados desde un punto centralizado, su centro de control.

Para llamar a esta API HTTP, debe consultar una URL (URL es el nombre que se le da a la dirección compuesta por el protocolo, la computadora, el puerto y la solicitud) como si fuera una «página web». Pero, ¿dónde está esa página web? ¡Me estoy haciendo un lío!. La forma más fácil es abrir la solicitud que desea con su navegador preferido. La dirección que debe poner tendrá la siguiente forma: https://IP_DE_LA_COMPUTADORA:PUERTO_CONFIGURADO/SOLICITUD

Por lo tanto, y en resumen:

  • la IP de la computadora depende de la configuración de red del equipo. Recomendamos que la haga fija para evitar que cambie y que las solicitudes se dirijan a otra computadora sin darse cuenta.
  • El puerto se indica en la configuración del terminal, marcado con una flecha roja.
  • La solicitud dependerá de la orden que desee darle a LDSscoreboard (lo veremos en breve).

A través de esta documentación de la API HTTP aprenderá cómo controlar el marcador de video de forma remota de una manera sencilla.

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

En el caso mostrado, la IP de nuestra computadora es 192.168.1.35 y el puerto configurado es 8086.

Descripción de la API

El objetivo es tener una API para todos los comandos de control de LDSscoreboard, excepto la edición de contenido. De esta manera, puede controlar de forma centralizada todas las pantallas que desee, publicar contenido promocional o marcar elementos.

Control de diapositivas

Comando Parámetros
/pcontrol/list_slides Recupera la lista de diapositivas disponibles en el marcador cargado
/pcontrol/show_slide/ Hace que la diapositiva indicada se muestre en la pantalla. name_slide = Nombre de la diapositiva que desea mostrar

Control de contadores

Comando Parámetros
/pcontrol/list_counters Recupera la lista de contadores definidos en el marcador activo
/pcontrol/increment_counter/COUNTER_NAME Incrementa el contador pasado como parámetro. counter_name = Nombre del contador sobre el cual operar
/pcontrol/decrement_counter/COUNTER_NAME Decrementa el contador pasado como parámetro. counter_name = Nombre del contador sobre el cual operar
/pcontrol/set_counter/COUNTER_NAME/VALUE Asigna un valor a un contador determinado. counter_name = Nombre del contador sobre el cual operar, value = valor numérico a asignar
/pcontrol/get_counter_value/COUNTER_NAME Recupera el valor de un contador. counter_name = Nombre del contador sobre el cual operar, value = valor numérico a asignar

Lista de jugadores

Comando Parámetros
/roster/get_local_team_name Comprueba el nombre del equipo local
/roster/get_guest_team_name Comprueba 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/PLAYER_INDEX[local|guest] Devuelve la información del jugador indicado (nombre, número, etc.)
/roster/increment_player_score/[local|guest] /PLAYER_INDEX Aumenta la puntuación asociada al jugador con el índice indicado
/roster/decrement_player_score/[local|guest] /PLAYER_INDEX Disminuye 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 Aumenta las faltas asociadas al jugador con el índice indicado
/roster/decrement_player_fauls/[local|guest] /PLAYER_INDEX Disminuye las faltas asociadas al jugador con el índice indicado
/roster/get_player_faults/[local|guest] /PLAYER_INDEX Recupera las faltas asociadas al jugador con el índice indicado
/roster/increment_player_cautions/[local|guest] /PLAYER_INDEX Aumenta las advertencias asociadas al jugador con el índice indicado
/roster/decrement_player_cautions/[local|guest] /PLAYER_INDEX Disminuye las advertencias asociadas al jugador con el índice indicado
/roster/get_player_cautions/[local|guest] /PLAYER_INDEX Recupera las advertencias asociadas al jugador con el índice indicado

 

Control de temporizador

Comando Parámetros
/pcontrol/list_timers Recupera la lista de temporizadores disponibles en el marcador activo
/pcontrol/start_timer/TIMER_NAME Inicia el temporizador en la dirección en la que se ha definido. name_timer = Nombre del temporizador (o cronómetro) sobre el cual operar
/pcontrol/stop_timer/TIMER_NAME Detiene el temporizador. Su valor no se altera. name_timer = Nombre del temporizador (o cronómetro) sobre el cual operar
/pcontrol/reset_timer/TIMER_NAME Restablece el temporizador al valor inicial definido en su configuración. name_timer = Nombre del temporizador (o cronómetro) sobre el cual operar
/pcontrol/get_timer_time/TIMER_NAME Recupera el valor de un temporizador. name_timer = Nombre del temporizador (o cronómetro) sobre el cual operar

Etiquetas dinámicas y contadores automáticos

Comando Parámetros
/gc/list_dynamic_labels Recupera la lista de etiquetas dinámicas disponibles en el marcador cargado
/gc/get_dynamic_label/VAR Recupera el valor asignado a la variable dinámica. VAR = Identificador de la variable que se consultará
/gc/set_dynamic_label/VAR/ARG1 Cambia el valor asignado a la variable dinámica. VAR = Identificador de la variable que se asignará, ARG1 = Nuevo valor a asignar
/gc/get_automatic_variable/VAR Obtiene el valor de una variable automática. Estas variables se calculan al usar la lista de jugadores. VAR = Nombre de la variable. Variables existentes: local_team_score : puntuación del equipo local, local_team_fauls: faltas cometidas por el equipo local, local_team_fauls_resetable: faltas cometidas por el equipo local, pero restablecibles. guest_team_score: puntuación del equipo visitante, guest_team_fauls: faltas del equipo visitante, guest_team_fauls_resettable: faltas del equipo visitante, pero son restablecibles.
/gc/reset_automatic_variable/VAR Restablece el contador a cero para variables automáticas que pueden restablecerse. VAR: Nombre de la variable restablecible (local_team_fauls_resetable o guest_team_fauls_resetable)

Gestión de vectores

Comando Parámetros
/pcontrol/list_vectors Recupera la lista de vectores disponibles en el marcador activo actual
/pcontrol/increment_vector_element/VECTOR_ID/INDEX/INCREMENT_VALUE Incrementa el valor del elemento en la posición INDEX del vector VECTOR_ID. El incremento está determinado por INCREMENT_VALUE
/pcontrol/set_vector_element_value/VECTOR_ID/INDEX/VALUE Establece el valor del elemento en la posición INDEX del vector VECTOR_ID. El nuevo valor está determinado por VALUE
/pcontrol/get_vector_element_value/VECTOR_ID/INDEX Obtiene el valor del elemento en la posición INDEX del vector VECTOR_ID.
/pcontrol/get_vector_length/VECTOR_ID Recupera el número de elementos del vector. Es decir, el tamaño definido.

Ejemplo de uso de la API HTTP de LDSscoreboard

Veamos un ejemplo para entender claramente el funcionamiento descrito en esta documentación sobre la API HTTP. Supongamos que hemos definido un marcador que contiene una diapositiva llamada «slide1»; para solicitar al sistema que abra slide1, debemos conocer la IP del equipo y el puerto, ya que el nombre ya lo conocemos.

Si tomamos la imagen en 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 realizar 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:

A continuación, si tenemos LDSscoreboard ejecutándose, deberíamos ver cómo la diapositiva llamada slide1 se activa.

IMPORTANTE

Si el nombre de la diapositiva contiene un espacio, al ser un carácter especial, debemos reemplazarlo por %20; es decir, «my slide» se traducirá como «my%20slide».

Herramientas para realizar llamadas a la API HTTP

Por supuesto, no estás restringido a tener que realizar llamadas HTTP desde un navegador; lo hemos hecho de esta manera porque es una herramienta que seguramente tienes a mano y conoces, pero existen muchas otras formas de hacerlo.

curl

curl es una herramienta de peticiones HTTP de código abierto. Está disponible en Linux, OSX y también en las versiones más recientes de Windows 10. Su uso es muy sencillo, como se puede ver en la siguiente imagen:

JavaScript

Puedes realizar un programa en Javascript, usando jquery, donde se realice una llamada HTTP, por ejemplo con este código:

timer_identifier=»my timer»;

$.getJSON(`/pcontrol/start_ timer/$ `)
.done(function (data) )
.fail(function (err) );

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