Вызов внешнего API с помощью Mule SDK - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь реализовать политику Mule 4.x, используя Mule SDK. При этом мне нужно вызвать внешний API в реализации операций политики. Результат, возвращаемый ответом внешнего API, определит выходные данные политики.

public class MyMulePolicyOperations
{
    @MediaType( value = ANY, strict = false )
    public void handle(
            @Config MyMulePolicyConfiguration configuration,
            @Alias( "httpRequestMethod" ) String httpRequestMethod,
            CompletionCallback<String, HttpResponse> callback ) throws Exception
    {
        HttpResponseBuilder httpResponseBuilder = HttpResponse.builder();

        String result = // call an external API and extract "result" from the response

        if ( result.equals( configuration.getMyConfigValue() ) )
        {
            httpResponseBuilder.addHeader( "allow_request", "true" );
        }
        else
        {
            httpResponseBuilder.addHeader( "allow_request", "false" );
        }

        Result<String, HttpResponse> result = Result.<String, HttpResponse> builder()
                .attributes( httpResponseBuilder.build() )
                .build();

        callback.success( result );
    }

}

Может кто-нибудь сказать мне, как я могу реализовать клиент REST с помощью Mule SDK?

1 Ответ

0 голосов
/ 15 марта 2020

Если вы хотите реализовать HTTP-запрос внутри пользовательского модуля, созданного с помощью Mule SDK, вам необходимо использовать HTTP-клиент, как описано в документации: https://docs.mulesoft.com/mule-sdk/1.1/HTTP-based-connectors#use -the-mule-http-client

Вы не указали причину или необходимость выполнить запрос внутри пользовательского модуля. Было бы намного проще просто выполнить HTTP-запрос с помощью HTTP-реквестера внутри пользовательской политики.

...