BISHUB API Functions: mudanças entre as edições

De BIS Wiki
Ir para navegação Ir para pesquisar
Criou página com '= BISHUB API Server = == Visão Geral == O '''BISHUB API Server''' é um servidor de API baseado em '''TCP/IP seguro (SSL/TLS)''' que permite a comunicação entre clientes...'
 
Linha 26: Linha 26:
{
{
   "action": "getStatus"
   "action": "getStatus"
  <Estrutura adicional de acordo com o definido pelo comando>
}
}
</syntaxhighlight>
</syntaxhighlight>
Linha 31: Linha 32:
Formato da resposta do servidor:
Formato da resposta do servidor:


'''Em caso de sucesso'''
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{
   "response": "Servidor rodando com SSL/TLS"
   "response": <qualquer dado ou estrutura conforme definição do método>
}
}
</syntaxhighlight>
</syntaxhighlight>


'''Em caso de Falha/Exception'''
<syntaxhighlight lang="json">
{
  "errorCode": <Código do erro quando disponível na Exception ou mesmo valor que errorMessage">,
  "errorMessage": <Mensagem de Erro>,
  "exceptionType": ("VALIDATION"|"CRITICAL"|"WARNING")
}
</syntaxhighlight>
O <code>exceptionType</code> é definido de acordo com o tipo de exception que ocorreu, sendo que qualquer exception desconhecida é tratada como crítica.


== Endpoints Disponíveis ==
== Endpoints Disponíveis ==

Edição das 19h58min de 23 de fevereiro de 2025

BISHUB API Server

Visão Geral

O BISHUB API Server é um servidor de API baseado em TCP/IP seguro (SSL/TLS) que permite a comunicação entre clientes e o sistema BISHUB. Diferente de APIs convencionais baseadas em HTTP, esta API opera utilizando sockets SSL/TLS, garantindo segurança na transmissão de dados.


Configuração do Servidor

A configuração do servidor é definida através do arquivo `config.properties`, onde os seguintes parâmetros podem ser ajustados:

  • `apiserver.port`: Define a porta em que o servidor será iniciado (padrão: 5000).
  • `apiserver.maxConnections`: Define o número máximo de conexões simultâneas permitidas (padrão: 10).

O servidor é iniciado através da execução do método `startServer()` na classe `BISHUBApiServer`.


Estrutura da Comunicação

A comunicação com o servidor é realizada através de mensagens JSON enviadas e recebidas via sockets SSL/TLS. Cada requisição deve conter um campo obrigatório `action`, que define a operação a ser executada pelo servidor.

Formato geral da mensagem enviada pelo cliente:

{
  "action": "getStatus"
  <Estrutura adicional de acordo com o definido pelo comando>
}

Formato da resposta do servidor:

Em caso de sucesso

{
  "response": <qualquer dado ou estrutura conforme definição do todo>
}


Em caso de Falha/Exception

{
  "errorCode": <Código do erro quando disponível na Exception ou mesmo valor que errorMessage">,
  "errorMessage": <Mensagem de Erro>,
  "exceptionType": ("VALIDATION"|"CRITICAL"|"WARNING")
}


O exceptionType é definido de acordo com o tipo de exception que ocorreu, sendo que qualquer exception desconhecida é tratada como crítica.

Endpoints Disponíveis

getStatus

  • Descrição: Retorna o status do servidor.
  • Requisição:
{
  "action": "getStatus"
}
  • Resposta:
{
  "response": "Servidor rodando com SSL/TLS"
}
Conexão Segura
Todas as comunicações devem ser realizadas via SSL/TLS para garantir a segurança dos dados.


Cliente

Exemplo de Cliente TCP/IP

Para interagir com o servidor, um cliente pode ser implementado em diversas linguagens. Abaixo, um exemplo de cliente em Java:

import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

public class TCPClient {
  public static void main(String[] args) {
    try {
      SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
      try (SSLSocket socket = (SSLSocket) factory.createSocket("localhost", 5000);
           PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
           BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {

        out.println("{\"action\":\"getStatus\"}");
        System.out.println("Resposta do servidor: " + in.readLine());
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}


Exemplo de Cliente com o BISHUBApiClient

Aqui está um exemplo de código que utiliza o `BISHUBApiClient` para se conectar ao servidor e obter seu status:

public class BISHUBApiClientExample {
  public static void main(String[] args) {
    try {
      // Inicializa o cliente com os valores padrão (localhost:5000)
      BISHUBApiClient client = new BISHUBApiClient();
      // Obtém e imprime o status do servidor
      String status = client.getStatus();
      System.out.println("Status do servidor: " + status);
    } catch (Exception e) {
      System.err.println("Erro ao conectar ao servidor: " + e.getMessage());
      e.printStackTrace();
    }
  }
}

Este exemplo inicializa um cliente, chama o método `getStatus()` e imprime a resposta do servidor. Se houver erros na comunicação, eles serão capturados e exibidos no console.


Conclusão

O BISHUB API Server fornece uma interface eficiente e segura para comunicação com o sistema BISHUB através de TCP/IP com SSL/TLS. Com um protocolo baseado em JSON, permite fácil integração com diversas plataformas. Para adicionar novos endpoints, basta implementar novas ações no método `processAction` da classe `BISHUBApiServer`.