Korzystanie z interfejsu OpenAPI
Klient można wygenerować z pliku OpenAPI , który został utworzony dla zestawu reguł usługi decyzyjnej.
Zanim rozpoczniesz
Aplikacja kliencka musi przekazać referencje uwierzytelniające dla portalu w chmurze.
Ważne:
Do wygenerowania klienta w preferowanym języku można użyć edytora Swagger lub innych narzędzi Swagger typu open source , na przykład: C#, Go, Apache Groovy, JavaScript, PHP, Python, Ruby, Scala, Swift lub TypeScript.
O tym zadaniu
Aby wywołać zestaw reguł usługi decyzyjnej z aplikacji klienckiej, należy utworzyć klasy proxy na podstawie pliku OpenAPI wygenerowanego dla ścieżki do zestawu reguł.
Procedura
- Uzyskaj plik OpenAPI dla zestawu reguł usługi decyzyjnej.
- Wygeneruj klasy proxy z pliku OpenAPI .
- Do wywołania zestawu reguł z aplikacji klienckiej należy użyć klas proxy.
Przykład
Aby pobrać plik OpenAPI z serwera Rule Execution Server:
- Wdróż zestaw reguł usługi decyzyjnej na serwerze Rule Execution Server.
- W konsoli Rule Execution Server przejdź do karty Eksplorator .
- Na panelu Navigator kliknij opcję RuleApp, a następnie kliknij zestaw reguł dla usługi decyzyjnej.
- W widoku Widok zestawu regułkliknij opcję Pobierz plik opisu HTDS.
- Jako typ protokołu usługi wybierz opcję REST .
- Wybierz format OpenAPI -YAML lub OpenAPI -JSON , aby wygenerować plik OpenAPI w YAML lub JSON.
- Zaznacz opcję Najnowsza wersja zestawu reguł i Najnowsza wersja RuleApp , aby wygenerować plik OpenAPI dla najnowszych wersji.
- Kliknij przycisk Pobierz.
Aby wygenerować klasy proxy w edytorze Swagger:
- Otwórz stronę http://editor.swagger.io/ w przeglądarce WWW.
- Kliknij opcję .
- Kliknij przycisk Przeglądaj , aby wybrać plik OpenAPI , a następnie kliknij przycisk Otwórz.
- Kliknij opcję Importuj.
- Kliknij opcję .
Następujący przykładowy kod Java™ importuje klasy proxy wygenerowane w edytorze Swagger dla zestawu reguł i wywołuje zestaw reguł z aplikacji 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);
}
}
}