/** * Path + query parameters provide a unique enough request key for known formats. * If a format needs to add more context then they should customize this method. * * @return key that uniquely identifies this upstream request from other contexts * * @since 3.4 */ protected String getRequestKey(final Context context) { return context.getRequest().getPath() + '?' + context.getRequest().getParameters(); }
public static Response accepted() { return new Response.Builder() .status(Status.success(ACCEPTED)) .build(); }
@Override public boolean matches(final Context context) { final String action = context.getRequest().getAction(); return allowedActions.contains(action); } }
private boolean isSuccessfulOrNotModified(final Response response) { return response.getStatus().isSuccessful() || response.getStatus().getCode() == 304; }
/** * Requires {@link #action} and {@link #path}. */ public Request build() { checkState(action != null, "Missing: action"); checkState(path != null, "Missing: path"); return new Request(attributes(), headers(), action, path, parameters(), payload, multipart, multiparts); } }
public Builder parameter(final String name, final String... values) { parameters().set(name, values); return this; }
private static String getHeaderValue(final Response response, final String header) { return response.getHeaders().get(header); }
/** * Find the first matching route for the given context. */ private Route findRoute(final Context context) { for (Route route : routes) { if (route.getMatcher().matches(context)) { return route; } } return defaultRoute; }
private static String getHeaderValue(final Request request, final String header) { return request.getHeaders().get(header); }
public static Response notFound(@Nullable final String message) { return new Response.Builder() .status(Status.failure(NOT_FOUND, message)) .build(); }
public static Response created(final Payload payload) { return new Response.Builder() .status(Status.success(CREATED)) .payload(payload) .build(); }
@Override public boolean apply(final Response response) { final String etag = response.getHeaders().get(HttpHeaders.ETAG); if (etag != null) { return !match.contains(etag); } return true; }
public static Response serviceUnavailable(@Nullable final String message) { return new Response.Builder() .status(Status.failure(SERVICE_UNAVAILABLE, message)) .build(); }
public static Response ok(final Payload payload) { return new Response.Builder() .status(Status.success(OK)) .payload(payload) .build(); }
public static Response notImplemented(@Nullable final String message) { return new Response.Builder() .status(Status.failure(NOT_IMPLEMENTED, message)) .build(); }
public static Response created(@Nullable final String message) { return new Response.Builder() .status(Status.success(CREATED, message)) .build(); }