@Path
The {@link oaj.http.annotation.Path @Path} annotation can be applied to arguments of @RemoteMethod-annotated methods
to denote that they are path parameters on the request.
- {@link oaj.http.annotation.Path}
- {@link oaj.http.annotation.Path#_enum() _enum} - Input validation. Must match one of the values.
- {@link oaj.http.annotation.Path#allowEmptyValue() allowEmptyValue} - Input validation. Allow empty value.
- {@link oaj.http.annotation.Path#collectionFormat() collectionFormat} - How collections of items are formatted.
- {@link oaj.http.annotation.Path#exclusiveMaximum() exclusiveMaximum} - Input validation. Whether maximum is exclusive.
- {@link oaj.http.annotation.Path#exclusiveMinimum() exclusiveMinimum} - Input validation. Whether minimum is exclusive.
- {@link oaj.http.annotation.Path#format() format} - The schema type format.
- {@link oaj.http.annotation.Path#items() items} - The schema of items in a collection.
- {@link oaj.http.annotation.Path#maximum() maximum} - Input validation. Maximum numeric value.
- {@link oaj.http.annotation.Path#maxLength() maxLength} - Input validation. Maximum length of a string.
- {@link oaj.http.annotation.Path#minimum() minimum} - Input validation. Minimum numeric value.
- {@link oaj.http.annotation.Path#minLength() minLength} - Input validation. Minimum length of a string.
- {@link oaj.http.annotation.Path#multipleOf() multipleOf} - Input validation. Number must be a multiple of.
- {@link oaj.http.annotation.Path#name() name} - Path variable name.
- {@link oaj.http.annotation.Path#pattern() pattern} - Input validation. Must match regular expression.
- {@link oaj.http.annotation.Path#serializer() serializer} - Override the part serializer.
- {@link oaj.http.annotation.Path#type() type} - The schema type.
@Remote(path="/myproxy")
public interface MyProxy {
// Explicit names specified for path parameters.
// pojo will be converted to UON notation (unless plain-text parts enabled).
@RemoteMethod(path="/mymethod1/{foo}/{bar}")
String myProxyMethod1(@Path("foo") String foo, @Path("bar") MyPojo pojo);
// Multiple values pulled from a NameValuePairs object.
// Same as @Path("*").
@RemoteMethod(path="/mymethod2/{foo}/{bar}/{baz}")
String myProxyMethod2(@Path NameValuePairs nameValuePairs);
// Multiple values pulled from a Map.
// Same as @Path("*").
@RemoteMethod(path="/mymethod3/{foo}/{bar}/{baz}")
String myProxyMethod3(@Path Map<String,Object> map);
// Multiple values pulled from a bean.
// Same as @Path("*").
@RemoteMethod(path="/mymethod4/{foo}/{bar}/{baz}")
String myProxyMethod4(@Path MyBean myBean);
}
Single-part arguments (i.e. those with name != "*") can be any of the following types:
-
Any serializable POJO - Converted to a string using the {@link oaj.httppart.HttpPartSerializer} registered with the
RestClient ({@link oaj.oapi.OpenApiSerializer} by default) or associated via the {@link oaj.http.annotation.Path#serializer() @Path(serializer)} annotation.
Multi-part arguments (i.e. those with name == "*" or empty) can be any of the following types:
-
NameValuePairs - Serialized as individual query parameters.
-
Map - Converted to key-value pairs.
Values serialized using the registered {@link oaj.httppart.HttpPartSerializer} ({@link oaj.oapi.OpenApiSerializer} by default).
-
Bean - Converted to key-value pairs.
Values serialized using the registered {@link oaj.httppart.HttpPartSerializer} ({@link oaj.oapi.OpenApiSerializer} by default).
See the link below for information about supported data types in OpenAPI serialization.
- {@doc juneau-marshall.OpenApiDetails.Serializers}