{8.2.0-updated} @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}, {@link oaj.http.annotation.Path#e() e} - Input validation. Must match one of the values.
  - {@link oaj.http.annotation.Path#allowEmptyValue() allowEmptyValue}, {@link oaj.http.annotation.Path#aev() aev} - Input validation. Allow empty value.
  - {@link oaj.http.annotation.Path#collectionFormat() collectionFormat}, {@link oaj.http.annotation.Path#cf() cf} - How collections of items are formatted.
  - {@link oaj.http.annotation.Path#exclusiveMaximum() exclusiveMaximum}, {@link oaj.http.annotation.Path#emax() emax} - Input validation. Whether maximum is exclusive.
  - {@link oaj.http.annotation.Path#exclusiveMinimum() exclusiveMinimum}, {@link oaj.http.annotation.Path#emin() emin} - Input validation. Whether minimum is exclusive.
  - {@link oaj.http.annotation.Path#format() format}, {@link oaj.http.annotation.Path#f() f} - 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}, {@link oaj.http.annotation.Path#max() max} - Input validation. Maximum numeric value.
  - {@link oaj.http.annotation.Path#maxLength() maxLength}, {@link oaj.http.annotation.Path#maxl() maxl} - Input validation. Maximum length of a string.
  - {@link oaj.http.annotation.Path#minimum() minimum}, {@link oaj.http.annotation.Path#min() min} - Input validation. Minimum numeric value.
  - {@link oaj.http.annotation.Path#minLength() minLength}, {@link oaj.http.annotation.Path#minl() minl} - Input validation. Minimum length of a string.
  - {@link oaj.http.annotation.Path#multipleOf() multipleOf}, {@link oaj.http.annotation.Path#mo() mo} - Input validation. Number must be a multiple of.
  - {@link oaj.http.annotation.Path#name() name}, {@link oaj.http.annotation.Path#n() n} - Path variable name.
  - {@link oaj.http.annotation.Path#pattern() pattern}, {@link oaj.http.annotation.Path#p() p} - Input validation. Must match regular expression.
  - {@link oaj.http.annotation.Path#serializer() serializer} - Override the part serializer.
  - {@link oaj.http.annotation.Path#type() type}, {@link oaj.http.annotation.Path#t() t} - The schema type.

##### 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). @RemoteMethod(path="/mymethod1/{foo}/{bar}") String myProxyMethod1(@Path("foo") String foo, @Path("bar") MyPojo pojo); // Multiple values pulled from a NameValuePairSupplier object. // Same as @Path("*"). @RemoteMethod(path="/mymethod2/{foo}/{bar}/{baz}") String myProxyMethod2(@Path NameValuePairSupplier nameValuePairSupplier); // 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:

- {@link oaj.http.NameValuePairSupplier} - Serialized as individual path 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 OpenApiSerializers}