O Mingle tem o serviço API Gateway para produtos que precisam de exposição de API para internet, garantindo canal único de liberação da rede do cliente para a nuvem e a segurança de não precisar expor o endereço completo do servidor do cliente.
Nesta etapa você será capaz de realizar requisições ao servidor usando a segurança e simplicidade do mingleService.
Vamos imaginar que você desenvolvedor precisa criar uma funcionalidade que busque uma lista de produtos do seu backend através do endereço
http://servidor-exemplo.com.br/listaProdutos
Com o Mingle Gateway, você não precisa comprometer a segurança do seu host ao informar o endereço rest completo, basta informar o endpoint desejado.
Veja o bloco de código abaixo:
getProducts() {
return this.mingleService.gateway.get('listaProdutos').subscribe(response => {
return JSON.stringify(response);
}, error => {
console.error("Error in gateway endpoint 'listaProdutos'");
return error ;
}
);
} |
Dessa forma o resultado do endereço para o request é "https://dev-mingle.totvs.com.br/listaProdutos" e através do seu ALIAS o Mingle identifica qual é o endereço final do servidor para realizar a chamada GET no endpoiont listaProdutos.
Ao utilizar a classe mingleService.gateway você substitui o request http padrão do typescript e garante a segurança da informação.
É possível enviar headers customizados de acordo com a sua implementação para o seu host.
Neste exemplo, vamos adicionar o header "x-totvs-header-customizado" ao request:
getProducts() {
const options = {headers: {"x-totvs-header-customizado": "123456"}};
return this.mingleService.gateway.get('listaProdutos', options).subscribe(response=>{
return JSON.stringify(response);
}, error => {
console.error("Error in gateway endpoint 'listaProdutos'");
return error ;
})
}
|
A classe mingleService.gateway está pronta para realizar as seguintes ações:

Os métodos get, post,put, delete e patch são responsáveis pela comunicação http entre o aplicativo e o servidor do Mingle conforme apresentado nos tópicos anteriores desse documento.
O método getHeaders retorna os headers padrões do MingleService.
O método getUrl retorna a URL padrão do MingleService.
Se o seu aplicativo permite upload de arquivos para o usuário, você pode enviá-los para o seu host através do Mingle usando a interface FormData.
Essa interface utiliza o mesmo formato que um form html utilizaria se o tipo de codificação estivesse configurado como "multipart/form-data".
Neste exemplo, recebemos arquivos com qualquer tipo de extensões através do upload no html
<po-upload name="upload" [(ngModel)]="fileUpload"> </po-upload> <ion-button (click)="sendFilesByMingle(fileUpload)">Direto</ion-button> |
E enviamos com o MingleService no método sendFilesByMingle(fileUpload):
public sendFilesByMingle (file: any) {
const formData: FormData = new FormData();
formData.append('file', file[0].rawFile);
const options = { body: formData };
this.mingleService.gateway.post("api/upload", options).subscribe(res => {
console.log("HTTP RESPONSE OK: ", res)
}), error => {
console.log("HTTP RESPONSE ERROR:", error);
}
} |
Envie o formData através do body usando a classe mingleService.gateway.
Dessa forma os seus arquivos serão enviados para o seu host.