@Path
The @Path annotation can be applied to arguments of @RemoteOp-annotated methods to denote that they are path parameters on the request.
Example
@Remote(path="/myproxy")
public interface MyProxy {
// Explicit names specified for path parameters.
// pojo will be converted to UON notation (unless plain-text parts enabled).
@RemoteGet("/mymethod1/{foo}/{bar}")
String myProxyMethod1(@Path("foo") String foo, @Path("bar") MyPojo pojo);
// Multiple values pulled from a PartList object.
// Same as @Path("*").
@RemoteGet("/mymethod2/{foo}/{bar}/{baz}")
String myProxyMethod2(@Path PartList partList);
// Multiple values pulled from a Map.
// Same as @Path("*").
@RemoteGet("/mymethod3/{foo}/{bar}/{baz}")
String myProxyMethod3(@Path Map map);
// Multiple values pulled from a bean.
// Same as @Path("*").
@RemoteGet("/mymethod4/{foo}/{bar}/{baz}")
String myProxyMethod4(@Path MyBean myBean);
}
Path arguments can be any of the following types:
-
Single-part arguments (i.e. those with name != "*"):
- Any serializable POJO - Converted to a string using the HttpPartSerializer registered with the
RestClient(OpenApiSerializer by default) or associated via the @Path(serializer) annotation.
- Any serializable POJO - Converted to a string using the HttpPartSerializer registered with the
-
Multi-part arguments (i.e. those with name == "*" or empty):
- PartList - Serialized as individual path parameters.
Map- Converted to key-value pairs. Values serialized using the registered HttpPartSerializer (OpenApiSerializer by default).- Bean - Converted to key-value pairs. Values serialized using the registered HttpPartSerializer (OpenApiSerializer by default).
See the link below for information about supported data types in OpenAPI serialization.
Path Remainder
For capturing the path remainder (the part matched by /*), you can use the @PathRemainder annotation as a more intuitive alternative to @Path("/*").
Example
@Remote(path="/myproxy")
public interface MyProxy {
// Using @PathRemainder (preferred)
@RemoteGet("/files/{+remainder}")
String getFile(@PathRemainder String remainder);
// Equivalent using @Path("/*")
@RemotePost("/upload/{+remainder}")
void uploadFile(@Path("/*") String remainder, @Content File file);
}
See Also
Share feedback or follow-up questions for this page directly through GitHub.