| Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | interfaces |
|---|
| São interfaces disponibilizadas na aplicação para uso na expansão das integrações: | Totvs custom tabs box |
|---|
| tabs | Autenticação,Integração |
|---|
| ids | authenticator,gateway |
|---|
| | Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | authenticator |
|---|
| A interface IStrategyAuthenticator define as formas de autenticação que poderão ser usadas pela integração. | Totvs custom tabs box |
|---|
| tabs | Métodos visíveis,Propriedades |
|---|
| ids | methodsauth,propertiesauth |
|---|
| | Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | methodsauth |
|---|
| function SetAuthURL(const AValue: string): IStrategyAuthenticator; function SetParam(const AName, AValue: string): IStrategyAuthenticator; function SetParams(const AValue: TStrings): IStrategyAuthenticator; function Authenticate(out AToken: string): THTTPCode;
|
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | propertiesauth |
|---|
| - ExpiresIn: Cardinal;
- TokenType: string;
|
|
A interface IStrategyAuthContainer define o contêiner de armazenamento das definições de classes baseadas na interface IStrategyAuthenticator. | Totvs custom tabs box |
|---|
| tabs | Métodos visíveis,Propriedades |
|---|
| ids | methodscont,propertiescont |
|---|
| | Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | methodscont |
|---|
| - function AddAuthenticator(const AName: string; const AAuthenticator: TStrategyAuthenticatorClass): IStrategyAuthContainer;
- function RemoveAuthenticator(const AName: string): IStrategyAuthContainer;
- function Clear: IStrategyAuthContainer;
- function SelectAuthenticator(const AName: string): IStrategyAuthContainer;
- function SetAuthURL(const AValue: string): IStrategyAuthContainer;
- function SetParam(const AName, AValue: string): IStrategyAuthContainer;
- function Authenticate(out AToken: string): THTTPCode;
|
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | propertiescont |
|---|
| - Authenticator[const AName: string]: IStrategyAuthenticator;
- Authenticators: TArray<string>;
|
|
|
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | gateway |
|---|
| A interface IGatewayBase define as classes de integração que podem ser agregadas à API. | Totvs custom tabs box |
|---|
| tabs | Métodos visíveis,Propriedades |
|---|
| ids | methodsgw,propertiesgw |
|---|
| | Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | methodsgw |
|---|
| - function SetAuthenticator(const AAuthenticator: IStrategyAuthenticator): IGatewayBase;
- function SetRedisConnector(const AValue: IRedisConnector): IGatewayBase;
- function TreatRequest(const ARequest: TWebRequest; const AResponse: TWebResponse; const APathInfo: TArray<string>): THTTPCode;
|
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | propertiesgw |
|---|
| Não há propriedades expostas. |
|
A interface IGatewayFactory define a estrutura que armazena as definições das classes baseadas na interface IGatewayBase. | Totvs custom tabs box |
|---|
| tabs | Métodos visíveis,Propriedades |
|---|
| ids | methodsfac,propertiesfac |
|---|
| | Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | methodsfac |
|---|
| - function GetResource(const AKey: string): IGatewayBase;
- function RegisterResource(const AKey: string; const AResource: TGatewayBaseClass): IGatewayFactory;
- function Resources: TArray<string>;
|
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | propertiesfac |
|---|
| Não há propriedades expostas. |
|
|
|
|
| Totvs custom tabs box items |
|---|
| Este é o fluxo básico de operação das classes agregadas à API Gateway . Image Removed Image Added
|
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | deploy |
|---|
| São opções de deploy da API Gateway: | Totvs custom tabs box |
|---|
| tabs | Microsoft Windows,Debian Linux e derivados,Docker/Podman |
|---|
| ids | windows,linux,docker |
|---|
| | Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | windows |
|---|
| | Totvs custom tabs box |
|---|
| tabs | Compilação,Configuração,Dependências |
|---|
| ids | compilacaowin,configuracaowin,dependenciaswin |
|---|
| | Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | compilacaowin |
|---|
| A compilação pode ser feita para as seguintes arquiteturas: - 32 bits (obsoleta)1
- 64 bits
E deve obedecer a configuração Release. Notas 1 - A Apache Foundation considera a compilação do servidor web Apache para 32 bits como obsoleta, mantida externamente por outras equipes, apenas para o sistema operacional Microsoft Windows. A opção para a compilação para a plataforma Microsoft Windows 32 bits foi mantida exclusivamente para uso com o produto REST Server, caso o cliente não queira fazer uso de outra instalação do servidor web Apache em sua infraestrutura. |
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | configuracaowin |
|---|
| As linhas a seguir devem ser adicionadas ao arquivo httpd.conf. | Bloco de código |
|---|
| LoadModule cesgw_module modules/mod_cesgw.so
<IfModule cesgw_module>
<Location /api/tlra/cesgw/v1>
SetHandler mod_cesgw-handler
</Location>
</IfModule> |
Após a alteração do arquivo, é necessário reiniciar o servidor Apache. |
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | dependenciaswin |
|---|
| A API depende diretamente do banco de dados Redis, devendo este ser instalado no mesmo servidor. |
|
|
| Totvs custom tabs box items |
|---|
| | Totvs custom tabs box |
|---|
| tabs | Compilação,Configuração,Dependências |
|---|
| ids | compilacaolin,configuracaolin,dependenciaslin |
|---|
| | Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | compilalin |
|---|
| A compilação deve ser feita para a plataforma Linux 64 bits, usando a configuração Release. |
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | configuracaolin |
|---|
| A configuração da API depende destes dois arquivos, os quais devem ser colocados no diretório /etc/apache2/mods-available. | Bloco de código |
|---|
| LoadModule cesgw_module /usr/lib/apache2/modules/mod_cesgw.so |
| Bloco de código |
|---|
| <IfModule cesgw_module>
<Location /api/tlra/cesgw/v1>
SetHandler mod_cesgw-handler
</Location>
</IfModule> |
Após a cópia dos arquivos para o diretório indicado, a seguinte sequência de comandos deve ser executada: # a2enmod cesgw # systemctl restart apache2 |
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | dependenciaslin |
|---|
| A API depende diretamente do banco de dados Redis, devendo este ser instalado no mesmo servidor. |
|
|
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | docker |
|---|
| | Totvs custom tabs box |
|---|
| tabs | Compilação,Criação da imagem,Deploy da imagem,Obtenção da imagem |
|---|
| ids | compilacaodoc,geracaodoc,deploydoc,instalacaodoc |
|---|
| | Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | compilacaodoc |
|---|
| A compilação da API deve obedecer os princípios descritos na compilação para ambientes Linux 64 bits. |
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | geracaodoc |
|---|
| A árvore de diretórios deve conter a seguinte estrutura: | Bloco de código |
|---|
Diretório de trabalho
|
+-mod_cesgw.so
+-cesgw.conf
+-cesgw.load
+-cesgw.dockerfile |
O arquivo cesgw.dockerfile deve conter: | Bloco de código |
|---|
| FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
# Instala Apache2 e Redis
RUN apt-get update && \
apt-get install -y apache2 redis-server && \
apt-get clean && rm -rf /var/lib/apt/lists/*
# Cria diretórios necessários
RUN mkdir -p /usr/lib/apache2/modules \
/etc/apache2/mods-available \
/etc/apache2/mods-enabled \
/var/log/totvs
RUN chmod 777 /var/log/totvs
# Copia o módulo e suas configurações
COPY mod_cesgw.so /usr/lib/apache2/modules/mod_cesgw.so
COPY cesgw.conf /etc/apache2/mods-available/cesgw.conf
COPY cesgw.load /etc/apache2/mods-available/cesgw.load
# Ativa o módulo
RUN a2enmod cesgw
# Expor a porta 80
EXPOSE 80
# Script de inicialização que roda o Redis e Apache juntos
CMD service redis-server start && apachectl -D FOREGROUND |
E a criação da imagem é feita por meio dos comandos a seguir: - Docker
- docker build -t tlra-cesgw:latest . -f ./cesgw.dockerfile
- Podman
- podman build -t tlra-cesgw:latest . -f ./cesgw.dockerfile
|
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | deploydoc |
|---|
| Tendo sido criada a imagem, ela pode ser disponibilizada por meio dos seguintes comandos: |
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | instalacaodoc |
|---|
| Uma vez disponibilizada, a imagem pode ser obtida por meio dos seguintes comandos: E sua inicialização pode ser comandada utilizando os seguintes comandos: |
|
|
|
|
|