Files
spring-functions-catalog/function/spring-http-request-function
Chris Bono 84e732da08 Prefix function names with spring-
* Add `spring-` prefix to function names

Fixes: #9

This commit renames each sub-module in the common, consumer, function
and supplier groups with a prefix of `spring-`.

* Update README.adoc links to new prefixed names
2024-01-02 14:07:00 -05:00
..
2024-01-02 14:07:00 -05:00
2024-01-02 14:07:00 -05:00

# HTTP Request Function

This module provides an HTTP request function that can be reused and composed in other applications.
The `Function` uses the reactive `WebClient` from `Spring WebFlux` and is implemented as a `java.util.function.Function`.
This function gives you a reactive stream of `ResponseEntity` given a stream of request messages as the function a signature of `Function<Message<?>,ResponseEntity>`.
Users have to subscribe to the returned `Flux` to receive the data.

## Beans for injection

You can import the `HttpRequestFunction` configuration in a Spring Boot application and then inject the following bean.

`httpRequestFunction`

You may inject this as `HttpRequestFunction`.

You can use `httpRequestFunction` as a qualifier when injecting.

Once injected, you can use the `apply` method of the `Function` to invoke it and then subscribe to the returned `Flux`.

## Configuration Options

All configuration properties are prefixed with `http.request`.

For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionProperties.java[HttpRequestFunctionProperties.java]

## Examples

See this link:src/test/java/org/springframework/cloud/fn/http/request/HttpRequestFunctionApplicationTests.java[test suite] for examples of how this function is used.

## Other usage

See this link:../../../applications/processor/http-request-processor/README.adoc[README] where this function is used to create a Spring Cloud Stream application to process HTTP requests.