Apache NiFi REST Api с использованием java - PullRequest
0 голосов
/ 03 марта 2020

Я все еще изучаю программирование Apache NiFi с использованием java, и мне интересно, кто-нибудь может объяснить мне, как создать платформу NiFi с использованием API-интерфейсов REST NiFi и java? Любое решение для создания процессора с использованием Apache NiFi REST API и java.

ОБНОВЛЕНИЯ Поэтому я пробовал это:

 import java.io.IOException;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;




public class HttpClientTest {
    public static void main(String[] args) throws IOException {
         CloseableHttpClient client = HttpClients.createDefault();
         HttpPost httpPost = new HttpPost("http://localhost:8080/nifi-api/process-groups/5f577c63-0170-1000-deb5-b53c37656ad4/template-instance");
         CloseableHttpResponse response = client.execute(httpPost);
            System.out.println(response.getStatusLine());
            client.close();

            }
        }

Но всегда: HTTP/1.1 400 Bad Request

1 Ответ

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

NiFi предоставляет определение swagger для работы с REST API, поэтому вы можете создать свой собственный клиент для предпочитаемого вами языка, используя Swagger Codegen. Вот инструкции о том, как сделать это для Python как часть моего Python клиента для NiFi, это будет хороший шаг новичка, чтобы изменить их для Java, а не работать с необработанным Вызовы JSON / REST.

Вот основная часть процесса:

mkdir -p ~/tmp && \
echo '{ "packageName": "nifi" }' > ~/tmp/swagger-nifi-python-    config.json && \
rm -rf ~/tmp/nifi-python-client && \
swagger-codegen generate \
    --lang python \
    --config swagger-nifi-python-config.json \
    --api-package apis \
    --model-package models \
    --template-dir /path/to/nipyapi/swagger_templates \
    --input-spec /path/to/nifi/nifi-nar-bundles/nifi-framework-    bundle/nifi-framework/nifi-web/nifi-web-api/target/swagger-ui/swagger.json     \
    --output ~/tmp/nifi-python-client
...