exceptionfactory opened a new pull request, #6268: URL: https://github.com/apache/nifi/pull/6268
# Summary [NIFI-10244](https://issues.apache.org/jira/browse/NIFI-10244) Adds a `nifi-web-client-api` module providing reusable interfaces to abstract HTTP communication. The `nifi-web-client-api` module provides a `WebClientService` interface with a fluent design pattern similar to the Spring Framework [WebClient](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/reactive/function/client/WebClient.html). The `WebClientService` and associated components support composition and execution of HTTP requests using standard or custom HTTP methods. The `WebClientService` supports synchronous request execution. The `nifi-web-client-api` module also provides an `HttpUriBuilder` interface to abstract composition of a `java.net.URI` based on component elements. The `nifi-web-client` module provides a standard implementation of these interfaces using [OkHttp](https://square.github.io/okhttp/). The `StandardWebClientService` class supports configuration of common settings, such as timeouts, TLS, and proxy access. The `nifi-web-client-api` and `nifi-web-client` modules under `nifi-commons` provide the foundation for a new Controller Service interface named `WebClientServiceProvider` defined in `nifi-web-client-provider-api`. The `StandardWebClientServiceProvider` implementation in `nifi-web-client-provider-service` enables components to define a reusable service configuration for HTTP communication. This approach follows the pattern of the Proxy Configuration Service, allowing Processors to abstract HTTP socket configuration. The `nifi-web-client-api` and `nifi-web-client-provider-api` also provide a layer of abstraction for components that require HTTP components. This narrows the scope of impact for dependency upgrades and allows components to implement HTTP communication without depending on a particular HTTP library. The initial implementation is self-contained with a number of unit tests using OkHttp MockWebServer. Runtime integration can be tested with scripted components, and further improvements can be implemented in subsequent pull requests as necessary. The purpose of this pull request is to provide the foundational implementation for additional development efforts. # Tracking Please complete the following tracking steps prior to pull request creation. ### Issue Tracking - [X] [Apache NiFi Jira](https://issues.apache.org/jira/browse/NIFI) issue created ### Pull Request Tracking - [X] Pull Request title starts with Apache NiFi Jira issue number, such as `NIFI-00000` - [X] Pull Request commit message starts with Apache NiFi Jira issue number, as such `NIFI-00000` ### Pull Request Formatting - [X] Pull Request based on current revision of the `main` branch - [X] Pull Request refers to a feature branch with one commit containing changes # Verification Please indicate the verification steps performed prior to pull request creation. ### Build - [X] Build completed using `mvn clean install -P contrib-check` - [X] JDK 8 - [X] JDK 11 - [X] JDK 17 ### Licensing - [ ] New dependencies are compatible with the [Apache License 2.0](https://apache.org/licenses/LICENSE-2.0) according to the [License Policy](https://www.apache.org/legal/resolved.html) - [ ] New dependencies are documented in applicable `LICENSE` and `NOTICE` files ### Documentation - [ ] Documentation formatting appears as expected in rendered files -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org