Utiliser OpenAPI

Vous pouvez générer un client à partir d'un fichier OpenAPI conçu pour un ensemble de règles de service de décision.

Avant de commencer

L'application client doit transmettre les données d'identification d'authentification pour le portail cloud.

Important :

Vous pouvez utiliser Swagger Editor ou d'autres outils Swagger open source Le lien externe ouvre une nouvelle fenêtre ou un nouvel onglet pour générer un client dans votre langage préféré, par exemple : C®#, Go, Apache Groovy, JavaScript, PHP, Python, Ruby, Scala, Swift, ou TypeScript.

A propos de cette tâche

Pour appeler un ensemble de règles de service de décision depuis une application client, vous créez des classes proxy à partir d'un fichier OpenAPI généré pour un chemin d'ensemble de règle.

Procédure

  1. Obtenez le fichier OpenAPI d'un ensemble de règles de service de décision.
  2. Générez les classes proxy à partir du fichier OpenAPI.
  3. Appelez l'ensemble de règles dans votre application client à l'aide des classes proxy.

Exemple

Pour obtenir le fichier OpenAPI à partir de Rule Execution Server:
  1. Déployez le jeu de règles du service de décision sur Rule Execution Server.
  2. Dans la console Rule Execution Server , accédez à l'onglet Explorateur .
  3. Dans le volet Navigateur, cliquez sur une RuleApp, puis sur un ensemble de règles de votre service de décision.
  4. Dans la Vue Ensemble de règles, cliquez sur Obtenir le fichier de description HTDS.
  5. Sélectionnez REST comme type de protocole du service.
  6. Sélectionnez OpenAPI – YAML ou OpenAPI – JSON comme format de génération d'un fichier OpenAPI dans YAML ou JSON.
  7. Cochez Dernière version de l'ensemble de règles et Dernière version de la RuleApp pour générer le fichier OpenAPI des versions les plus récentes.
  8. Cliquez sur Télécharger.
Pour générer les classes proxy dans Swagger Editor :
  1. Ouvrir http://editor.swagger.io/ Le lien externe ouvre une nouvelle fenêtre ou un nouvel onglet dans un navigateur web.
  2. Cliquez sur Fichier > Importer un fichier.
  3. Cliquez sur Browse pour sélectionner le fichier OpenAPI, puis sur Open.
  4. Cliquez sur Import.
  5. Cliquez sur Générer un client > Java.
L'exemple de code Java™ suivant importe les classes de proxy générées dans l'éditeur Swagger pour un ensemble de règles et appelle l'ensemble de règles à partir d'une application 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);		
		}
	}
	
}