Feign makes writing java http clients easier
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Marvin Froeder 1c5c6e1e70 Update all license headers to 2023 2 years ago
..
src Update all license headers to 2023 2 years ago
README.md Jakarta annotations support (#1649) 2 years ago
pom.xml Update all license headers to 2023 2 years ago

README.md

Feign Jakarta

This module overrides annotation processing to instead use standard ones supplied by the Jakarta specification. This is currently targeted at the 3.1 spec.

Limitations

While it may appear possible to reuse the same interface across client and server, bear in mind that Jakarta resource annotations were not designed to be processed by clients. Finally, Jakarta is a large spec and attempts to implement it completely would be a project larger than feign itself. In other words, this implementation is best efforts and concedes far from 100% compatibility with server interface behavior.

Currently Supported Annotation Processing

Feign only supports processing java interfaces (not abstract or concrete classes).

Here are a list of behaviors currently supported.

Type Annotations

@Path

Appends the value to Target.url(). Can have tokens corresponding to @PathParam annotations.

Method Annotations

@HttpMethod meta-annotation (present on @GET, @POST, etc.)

Sets the request method.

@Path

Appends the value to Target.url(). Can have tokens corresponding to @PathParam annotations.

@Produces

Adds all values into the Accept header.

@Consumes

Adds the first value as the Content-Type header.

Parameter Annotations

@PathParam

Links the value of the corresponding parameter to a template variable declared in the path.

@QueryParam

Links the value of the corresponding parameter to a query parameter. When invoked, null will skip the query param.

@HeaderParam

Links the value of the corresponding parameter to a header.

@FormParam

Links the value of the corresponding parameter to a key passed to Encoder.Text<Map<String, Object>>.encode().