@Query
The {@link oaj.http.annotation.Query @Query} annotation can be applied to arguments of @RemoteMethod-annotated methods
to denote that they are query parameters on the request.
- {@link oaj.http.annotation.Query}
- {@link oaj.http.annotation.Query#_default() _default} - Default value if not present.
- {@link oaj.http.annotation.Query#_enum() _enum} - Input validation. Must match one of the values.
- {@link oaj.http.annotation.Query#allowEmptyValue() allowEmptyValue} - Input validation. Allow empty value.
- {@link oaj.http.annotation.Query#collectionFormat() collectionFormat} - How collections of items are formatted.
- {@link oaj.http.annotation.Query#exclusiveMaximum() exclusiveMaximum} - Input validation. Whether maximum is exclusive.
- {@link oaj.http.annotation.Query#exclusiveMinimum() exclusiveMinimum} - Input validation. Whether minimum is exclusive.
- {@link oaj.http.annotation.Query#format() format} - The schema type format.
- {@link oaj.http.annotation.Query#items() items} - The schema of items in a collection.
- {@link oaj.http.annotation.Query#maximum() maximum} - Input validation. Maximum numeric value.
- {@link oaj.http.annotation.Query#maxItems() maxItems} - Input validation. Maximum number of items in a collection.
- {@link oaj.http.annotation.Query#maxLength() maxLength} - Input validation. Maximum length of a string.
- {@link oaj.http.annotation.Query#minimum() minimum} - Input validation. Minimum numeric value.
- {@link oaj.http.annotation.Query#minItems() minItems} - Input validation. Minimum number of items in a collection.
- {@link oaj.http.annotation.Query#minLength() minLength} - Input validation. Minimum length of a string.
- {@link oaj.http.annotation.Query#multipleOf() multipleOf} - Input validation. Number must be a multiple of.
- {@link oaj.http.annotation.Query#name() name} - Query parameter name.
- {@link oaj.http.annotation.Query#pattern() pattern} - Input validation. Must match regular expression.
- {@link oaj.http.annotation.Query#required() required} - Input validation. Query parameter must be present.
- {@link oaj.http.annotation.Query#serializer() serializer} - Override the part serializer.
- {@link oaj.http.annotation.Query#skipIfEmpty() skipIfEmpty}- Don't add if value is null or empty.
- {@link oaj.http.annotation.Query#type() type} - The schema type.
- {@link oaj.http.annotation.Query#uniqueItems() uniqueItems} - Input validation. Collections must contain unique items only.
@Remote(path="/myproxy")
public interface MyProxy {
// Explicit names specified for query parameters.
@RemoteMethod
String parameters(
@Query("foo") String foo,
@Query("bar") MyPojo pojo);
// Multiple values pulled from a NameValuePairs object.
// Same as @Query("*").
@RemoteMethod
String nameValuePairs(@Query NameValuePairs nameValuePairs);
// Multiple values pulled from a Map.
// Same as @Query("*").
@RemoteMethod
String map(@Query Map<String,Object> map);
// Multiple values pulled from a bean.
// Same as @Query("*").
@RemoteMethod
String bean(@Query MyBean myBean);
// An entire query string as a String.
// Same as @Query("*").
@RemoteMethod
String string(@Query String string);
// An entire query string as a Reader.
// Same as @Query("*").
@RemoteMethod
String reader(@Query Reader reader);
}
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.Query#serializer() @Query(serializer)} annotation.
Multi-part arguments (i.e. those with name == "*" or empty) can be any of the following types:
-
{@link java.io.Reader} - Raw contents of {@code Reader} will be serialized directly a query string.
-
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).
-
CharSequence - Serialized directly a query string.
See the link below for information about supported data types in OpenAPI serialization.
- {@doc juneau-marshall.OpenApiDetails.Serializers}