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

Reply via email to