Usando OpenAPI
É possível gerar um cliente a partir de um arquivo OpenAPI que é feito para um conjunto de regras de serviço de decisão
Antes de iniciar
O aplicativo cliente deve passar credenciais de autenticação para o portal da nuvem.
Importante:
Você pode usar o Swagger Editor ou outras ferramentas Swagger de código aberto
para gerar um cliente em sua linguagem preferida, por exemplo: C®#, Go, Apache Groovy, JavaScript, PHP, Python, Ruby, Scala, Swift ou TypeScript.
Sobre esta tarefa
Para chamar um conjunto de regras de serviço de decisão a partir de um aplicativo cliente, você cria classes de proxy a partir de um arquivo OpenAPI gerado para um caminho do conjunto de regras
Procedimento
- Obtenha um arquivo OpenAPI para um conjunto de regras de serviço de decisão.
- Gerar classes de proxy a partir do arquivo OpenAPI .
- Use as classes de proxy para chamar a ruleset a partir de seu aplicativo cliente.
Exemplo
Para obter o arquivo OpenAPI do Rule Execution Server:
- Implementar a ruleset de serviço de decisão para Servidor De Execução De Regras.
- No console Servidor De Execução De Regras , vá para a aba Explorer .
- No painel Navigator, clique em um RuleApp, e, em seguida, em um conjunto de regras para o serviço de decisão.
- Na Visualização do Conjunto de Regras, clique em Recuperar Arquivo de Descrição HTDS.
- Selecione REST como um tipo de protocolo de serviço.
- Selecione OpenAPI – YAML ou OpenAPI – JSON como um formato para gerar um arquivo OpenAPI em YAML ou JSON.
- Marque Versão mais recente do conjunto de regras e Versão mais recente do RuleApp para gerar o arquivo OpenAPI para obter as versões mais recentes.
- Clique em Download.
Para gerar as classes de proxy no Editor Swagger:
- Abrir http://editor.swagger.io/
em um navegador da Web. - Clique em .
- Clique em Navegar para selecionar o arquivo OpenAPI e clique em Abrir.
- Clique em Importar.
- Clique em .
A amostra de código Java™ a seguir importa as classes de proxy geradas no Swagger Editor para uma ruleset e chama a ruleset a partir de um aplicativo Java:
import java.util.List;
import io.swagger.client.ApiClient;
import io.swagger.client.ApiException;
import io.swagger.client.model.Borrower;
import io.swagger.client.model.Loan;
import io.swagger.client.model.Request;
import io.swagger.client.model.Response;
public class DecisionServiceExecution {
public static void main(String[] args) {
ApiClient apiClient = new ApiClient();
// Replace "loginID" with the ID of a user who has access to the Cloud portal
apiClient.setUsername("loginID");
// Replace "password" with the password of a user who has access to the Cloud portal
apiClient.setPassword("password");
DefaultApi api = new DefaultApi(apiClient);
// Create the request
Request request = new Request();
// Set the borrower
Borrower borrower = new Borrower();
borrower.setName("John");
borrower.setCreditScore(600);
borrower.setYearlyIncome(80000);
request.setBorrower(borrower);
// Set the loan
Loan loan = new Loan();
loan.setAmount(500000);
loan.setDuration(240);
loan.setYearlyInterestRate(0.05);
// approved (set to true by default, to be computed by the decision engine)
loan.setApproved(true);
request.setLoan(loan);
// Retrieve the response
try {
Response response = api.callDecisionOperation(request);
System.out.println("Rules executed.");
System.out.println("Approved: " + response.getLoan().getApproved());
System.out.println("Yearly interest rate: " + response.getLoan().getYearlyInterestRate());
System.out.println("Yearly repayment: " + response.getLoan().getYearlyRepayment());
List<String> messages = response.getLoan().getMessages();
if (messages != null) {
System.out.println("Messages: ");
for (String message : messages) {
System.out.println(message);
}
}
} catch (ApiException e) {
throw new RuntimeException("An error occurred when invoking Decision Service", e);
}
}
}