Documentação da API HTTP

A documentação da API HTTP dir-te-á como podes controlar o teu painel de avaliação de vídeo remotamente, quer através de um dispositivo Stream Deck, de uma chamada de comando curl através da linha de comando, ou através de software que tu próprio desenvolveste.

O que é uma API e uma API HTTP?

Uma API (Application Programming Interface – Interface de Programação de Aplicações) é um elemento que fornece uma forma de interação com outros sistemas. Existem muitos tipos de API, razão pela qual me referi a ela como um “elemento”, e pode proporcionar muitos tipos de interacções: pode enviar-lhe dados, recolher dados desse sistema ou controlá-lo remotamente.

No nosso caso, implementámos uma API HTTP, o que significa que temos uma espécie de servidor Web, que está à espera de receber os seus pedidos como se estivesse a pedir um sítio Web e a fazer coisas com base no endereço que digitou.

A parte importante aqui é que se trata de um servidor Web, pelo que pode enviar pedidos de API HTTP utilizando qualquer programa que possa pedir páginas Web (o seu browser favorito, a aplicação enrolar em Linux e OSX, etc.) e, mais importante, pode fazê-lo a partir de qualquer computador, tablet ou telemóvel, que esteja na mesma rede, permitindo-lhe ter vários LDSscoreboards (ou LDSperimetral) controlados a partir de um ponto centralizado, o seu centro de controlo.

Para chamar esta API HTTP, é necessário consultar um url (URL é o nome dado ao endereço composto pelo protocolo, computador, porta e pedido) como se fosse uma “página Web”. Mas onde está essa página Web? Estou a fazer uma confusão! A forma mais fácil é abrir com o seu browser preferido o pedido que pretende. O endereço terá o seguinte aspeto: https://IP_DEL_ORDENADOR:PUERTO_CONFIGURADO/PETICION_A_EFECTUAR

Por conseguinte, e em resumo:

  • O endereço IP do computador depende da configuração de rede do equipamento. Recomendamos que o defina como fixo para evitar que seja alterado e que os pedidos passem para outro computador sem que se aperceba.
  • A porta é indicada na configuração do terminal, assinalada com uma seta vermelha.
  • O pedido dependerá da ordem que pretende dar ao LDSscoreboard (veremos isso em breve).

Com esta documentação da API HTTP, podes aprender a controlar remotamente o painel de avaliação de vídeo de uma forma simples.

Documentação e configuração da API HTTP do LDSscoreboard

No caso apresentado, o IP do nosso computador é 192.168.1.35 e a porta configurada é 8080.

Descrição da API

O objetivo é ter uma API para todos os comandos de controlo do LDSscoreboard, exceto a edição de conteúdos. Desta forma, pode controlar centralmente todos os ecrãs que desejar, publicar conteúdos promocionais ou marcar elementos.

controlo de deslizamento

Comando Parâmetros
/pcontrol/show_slide/<SLIDE_NAME> Faz com que o diapositivo indicado apareça no ecrã.

slide_slide_name = Nome do diapositivo a ser apresentado

Contra-controlo

Comando Parâmetros
/pcontrol/increment_counter/NAME_CONTER Aumenta o contador que é passado como parâmetro

counter_name = Nome do contador a ser operado

/pcontrol/decrement_counter/NAME_CONTER Diminui o contador que é passado como parâmetro

counter_name = Nome do contador a ser operado

/pcontrol/set_counter/NAME_COUNTER/VALUE Atribui um valor a um determinado contador.

counter_name = Nome do contador a ser operado
value = valor numérico a atribuir

/pcontrol/get_counter_value/counter_name Recupera o valor de um contador.

counter_name = Nome do contador a ser operado
value = valor numérico a atribuir

lista de jogadores

Comando Parâmetros
/roster/get_local_team_name Verificar o nome da equipa da casa
/roster/get_guest_team_name Verificar o nome da equipa visitante
/roster/get_team_players_count/[local|guest] Devolve o número de jogadores da equipa da casa ou da equipa visitante.
/roster/get_player_information/[local|guest]/PLAYER_INDEX Devolve as informações do jogador indicado (nome, número, etc.)
/roster/increment_player_score/[local|guest]/PLAYER_INDEX Aumenta a pontuação associada ao jogador com o índice indicado.
/roster/decrement_player_score/[local|guest]/PLAYER_INDEX Diminui a pontuação associada ao jogador com o índice indicado.
/roster/get_player_score/[local|guest]/PLAYER_INDEX Recupera a pontuação associada ao jogador com o índice indicado.
/roster/increment_player_fauls/[local|guest]/PLAYER_INDEX Aumenta as faltas associadas ao jogador com a classificação indicada.
/roster/decrement_player_fauls/[local|guest]/PLAYER_INDEX Diminui as faltas associadas ao jogador com o índice indicado.
/roster/get_player_fauls/[local|guest]/PLAYER_INDEX Recupera as faltas associadas ao jogador com o índice indicado.
/roster/increment_player_cautions/[local|guest]/PLAYER_INDEX Aumenta o número de advertências associadas ao jogador com a classificação indicada.
/roster/decrement_player_cautions/[local|guest]/PLAYER_INDEX Diminuição das cautelas associadas ao jogador com o índice indicado
/roster/get_player_cautions/[local|guest]/PLAYER_INDEX Recupera os avisos associados ao jogador com o índice indicado.

 

controlo do temporizador

Comando Parâmetros
/pcontrol/start_timer/NOMBRE_TIMER Inicia o temporizador na direção em que foi definido.

timer_name = Nome do temporizador (ou cronómetro) a utilizar

/pcontrol/stop_timer/NAME_TIMER Pára o temporizador. O seu valor não é alterado.

timer_name = Nome do temporizador (ou cronómetro) a utilizar

/pcontrol/reset_timer/NOMBRE_TIMER Repõe o temporizador no valor inicial definido na sua configuração.

timer_name = Nome do temporizador (ou cronómetro) a utilizar

/pcontrol/get_timer_time/NAMBRE_TIMER Recupera a hora definida por um temporizador.

timer_name = Nome do temporizador (ou cronómetro) a utilizar

Etiquetas dinâmicas e contadores automáticos

Comando Parâmetros
/gc/get_dynamic_label/VAR Recupera o valor que foi atribuído à variável dinâmica.

VAR = Identificador da variável a ser consultada

/gc/set_dynamic_label/VAR/ARG1 Altera o valor atribuído à variável dinâmica

VAR = Identificador da variável a ser atribuída
ARG1 = Novo valor a atribuir

/gc/get_automatic_variable/VAR Obtém o valor de uma variável automática. Estas variáveis são calculadas quando se utiliza a lista de jogadores.

VAR = Nome da variável

Variáveis existentes:
local_team_score : pontuação da equipa local
local_team_fauls: faltas cometidas pela equipa da casa
Local_team_fauls_resettable: faltas cometidas pela equipa da casa, mas que podem ser anuladas.
guest_team_score: resultado da equipa visitante
guest_team_fauls: faltas cometidas pela equipa visitante
guest_team_fauls_resettable: faltas cometidas pela equipa visitante, mas que podem ser anuladas.

/gc/reset_automatic_variable/VAR Repõe o contador das variáveis automáticas que podem ser reniciadas.

VAR: Nome da variável reinicializável (local_team_fauls_resetable ou guest_team_fauls_resetable)

Exemplo de utilização da API HTTP do LDSscoreboard

Vejamos um exemplo para compreender melhor como funciona a API HTTP tal como descrita nesta documentação. Suponhamos que definimos um marcador que contém um diapositivo chamado “slide1”, para pedir ao sistema que abra o slide1, devemos saber o IP do computador e a porta, uma vez que já sabemos o nome.

Se pegarmos na imagem no topo da página, veremos que temos o ip 192.168.1.35 e o porto 8080, pelo que devemos fazer um pedido HTTP (abrir a página) para o endereço http://192.168.1.35:8080 /pcontrol/show_slide/slide1

Para o fazer, podemos abrir um browser e colocar o endereço na barra de endereços:

Em seguida, se tivermos o LDSscoreboard em execução, devemos ver o slide chamado slide1 tornar-se ativo.

IMPORTANTE

Se o nome do diapositivo contiver um espaço, uma vez que se trata de um carácter especial, devemos substituí-lo por %20, ou seja, “my slide” será traduzido como “my%20slide”.

Ferramentas para efetuar chamadas HTTP

Claro que não está limitado a ter de fazer as chamadas HTTP a partir de um browser, fizemo-lo desta forma porque é uma ferramenta que provavelmente tem à mão e conhece, mas há muitas outras formas de o fazer.

enrolar

curl é uma ferramenta de pedido HTTP de código aberto. Está disponível no Linux, OSX e também nas versões mais recentes do Windows 10. É muito simples de utilizar, como mostra a imagem seguinte:

Javascript

Pode fazer um programa Javascript, utilizando jquery, onde é feita uma chamada HTTP, por exemplo com este código:

timer_identifier=”o meu temporizador”;

$.getJSON(`/pcontrol/start_timer/${timer_identifier}`)
.done(function (data) {
se (dados.estado != 0) {
console.error(`Erro ao iniciar o temporizador: ${JSON.stringify(data)} `);
}
})
.fail(function (err) {
se (err.status != 200)
console.error(`Erro ao iniciar o temporizador [${JSON.stringify(err)}]`);
});

e qualquer linguagem de programação permite-lhe fazer essas chamadas.