BISHUB API Functions: mudanças entre as edições
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...' |
|||
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada) | |||
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": " | "response": <qualquer dado ou estrutura conforme definição do método> | ||
} | |||
</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> | </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 == | ||
Linha 120: | Linha 135: | ||
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. | 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. | ||
{{nota|Montagem das Exceptions|O '''BISHUBApiCLient''' trata as mensagens de erro recebidas e remonta as exceptions de acordo com a mensagem de erro recebida utilizando as classes <code>RFWWarningException</code><code>RFWValidationException</code> e <code>RFWCriticalException</code>.}} | |||
= Conclusão = | = 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`. | 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`. |
Edição atual tal como às 19h59min 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 mé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"
}
![]() |
|
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`.