@Override void setUpArgs(final ClientRequestConfigurer clientRequestConfigurer, final JsonRepresentation requestArgs) { clientRequestConfigurer.body(requestArgs); } };
@Override void setUpArgs(final ClientRequestConfigurer clientRequestConfigurer, final JsonRepresentation requestArgs) { clientRequestConfigurer.queryString(requestArgs); } },
public <T extends JsonRepresentation> RestfulResponse<T> follow(final ClientExecutor executor, final JsonRepresentation requestArgs) throws Exception { final ClientRequestConfigurer clientRequestConfigurer = ClientRequestConfigurer.create(executor, getHref()); clientRequestConfigurer.accept(MediaType.APPLICATION_JSON_TYPE); clientRequestConfigurer.setHttpMethod(getHttpMethod()); clientRequestConfigurer.configureArgs(requestArgs); final RestfulRequest restfulRequest = new RestfulRequest(clientRequestConfigurer); return restfulRequest.executeT(); }
public RestfulRequest createRequest(final RestfulHttpMethod httpMethod, final String uriTemplate) { final boolean includesScheme = uriTemplate.startsWith("http:") || uriTemplate.startsWith("https:"); final String base = clientRequestFactory.getBase().toString(); final String uri = (includesScheme ? "" : base) + uriTemplate; final ClientRequestConfigurer clientRequestConfigurer = ClientRequestConfigurer.create(executor, uri); clientRequestConfigurer.accept(MediaType.APPLICATION_JSON_TYPE); clientRequestConfigurer.setHttpMethod(httpMethod); return new RestfulRequest(clientRequestConfigurer); }
private void setsUpQueryString(final RestfulHttpMethod httpMethod) throws UnsupportedEncodingException { context.checking(new Expectations() { { one(requestConfigurer).setHttpMethod(httpMethod); one(requestConfigurer).queryString(repr); } }); httpMethod.setUpArgs(requestConfigurer, repr); }
private void setsUpBody(final RestfulHttpMethod httpMethod) throws UnsupportedEncodingException { context.checking(new Expectations() { { one(requestConfigurer).setHttpMethod(httpMethod); one(requestConfigurer).body(repr); } }); httpMethod.setUpArgs(requestConfigurer, repr); }
/** * It's a bit nasty that we need to ask for the {@link UriBuilderImpl} as * well as the {@link ClientRequest}, but that's because the * {@link ClientRequest} does not allow us to setup raw query strings (only * query name/arg pairs) * * @param restEasyRequest * @param uriBuilder * - that sits underneath the restEasyRequest * @param requestArgs */ public void setUpArgs(final ClientRequestConfigurer clientRequestConfigurer, final JsonRepresentation requestArgs) { clientRequestConfigurer.setHttpMethod(this); if (requestArgs == null) { return; } if (!requestArgs.isMap()) { throw new IllegalArgumentException("requestArgs must be a map; instead got: " + requestArgs); } argStrategy.setUpArgs(clientRequestConfigurer, requestArgs); }
public RestfulResponse<JsonRepresentation> execute() { try { if (!args.isEmpty()) { clientRequestConfigurer.configureArgs(args); } final ClientRequest clientRequest = clientRequestConfigurer.getClientRequest(); final Response response = clientRequest.execute(); // this is a bit hacky @SuppressWarnings("unchecked") final BaseClientResponse<String> restEasyResponse = (BaseClientResponse<String>) response; restEasyResponse.setReturnType(String.class); return RestfulResponse.ofT(response); } catch (final Exception ex) { throw new RuntimeException(ex); } }
/** * Used when creating a request with arguments to execute. * * <p> * Typical flow is: * <ul> * <li> {@link RestfulClient#createRequest(RestfulHttpMethod, String)} * <li> {@link RestfulRequest#withArg(RequestParameter, Object)} for each arg * <li> {@link RestfulRequest#execute()} - which calls this method. * </ul> */ public ClientRequestConfigurer configureArgs(final Map<RequestParameter<?>, Object> args) { if (clientRequest.getHttpMethod() == null) { throw new IllegalStateException("Must set up http method first"); } final JsonRepresentation argsAsMap = JsonRepresentation.newMap(); for (final RequestParameter<?> requestParam : args.keySet()) { put(args, requestParam, argsAsMap); } getHttpMethod().setUpArgs(this, argsAsMap); return this; }
/** * Used when following links ( * {@link RestfulClient#follow(LinkRepresentation)}). */ public ClientRequestConfigurer configureArgs(final JsonRepresentation requestArgs) { if (clientRequest.getHttpMethod() == null) { throw new IllegalStateException("Must set up http method first"); } getHttpMethod().setUpArgs(this, requestArgs); return this; }
public static ClientRequestConfigurer create(final ClientExecutor executor, final String uriTemplate) { final UriBuilder uriBuilder = new UriBuilderImpl().uriTemplate(uriTemplate); final ClientRequest clientRequest = executor.createRequest(uriBuilder); return new ClientRequestConfigurer(clientRequest, uriBuilder); }
private void setsUpQueryString(final RestfulHttpMethod httpMethod) throws UnsupportedEncodingException { context.checking(new Expectations() { { one(requestConfigurer).setHttpMethod(httpMethod); one(requestConfigurer).queryString(repr); } }); httpMethod.setUpArgs(requestConfigurer, repr); }
private void setsUpBody(final RestfulHttpMethod httpMethod) throws UnsupportedEncodingException { context.checking(new Expectations() { { one(requestConfigurer).setHttpMethod(httpMethod); one(requestConfigurer).body(repr); } }); httpMethod.setUpArgs(requestConfigurer, repr); }