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.
35 lines
1.7 KiB
35 lines
1.7 KiB
2 years ago
|
# 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()`.
|