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 O link externo abre uma nova janela ou guia 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

  1. Obtenha um arquivo OpenAPI para um conjunto de regras de serviço de decisão.
  2. Gerar classes de proxy a partir do arquivo OpenAPI .
  3. 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:
  1. Implementar a ruleset de serviço de decisão para Servidor De Execução De Regras.
  2. No console Servidor De Execução De Regras , vá para a aba Explorer .
  3. No painel Navigator, clique em um RuleApp, e, em seguida, em um conjunto de regras para o serviço de decisão.
  4. Na Visualização do Conjunto de Regras, clique em Recuperar Arquivo de Descrição HTDS.
  5. Selecione REST como um tipo de protocolo de serviço.
  6. Selecione OpenAPI – YAML ou OpenAPI – JSON como um formato para gerar um arquivo OpenAPI em YAML ou JSON.
  7. 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.
  8. Clique em Download.
Para gerar as classes de proxy no Editor Swagger:
  1. Abrir http://editor.swagger.io/ O link externo abre uma nova janela ou guia em um navegador da Web.
  2. Clique em Arquivo > Importar arquivo.
  3. Clique em Navegar para selecionar o arquivo OpenAPI e clique em Abrir.
  4. Clique em Importar.
  5. Clique em Gerar cliente > Java.
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);		
		}
	}
	
}