@Override protected URI expandInternal(String uriTemplate, Map<String, ?> uriVariables) { UriComponentsBuilder uriComponentsBuilder = initUriComponentsBuilder(uriTemplate); UriComponents uriComponents = expandAndEncode(uriComponentsBuilder, uriVariables); return createUri(uriComponents); }
/** * Create a {@code UriComponentsBuilder} from the URI template string. * This implementation also breaks up the path into path segments depending * on whether {@link #setParsePath parsePath} is enabled. */ protected UriComponentsBuilder initUriComponentsBuilder(String uriTemplate) { UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(uriTemplate); if (shouldParsePath() && !isStrictEncoding()) { List<String> pathSegments = builder.build().getPathSegments(); builder.replacePath(null); for (String pathSegment : pathSegments) { builder.pathSegment(pathSegment); } } return builder; }
@Test public void baseUrlWithPath() throws Exception { this.handler.setBaseUrl("http://localhost:8080/context"); URI actual = this.handler.expand("/myapiresource"); assertEquals("http://localhost:8080/context/myapiresource", actual.toString()); }
@Override public UriComponents expandAndEncode(UriComponentsBuilder builder, Object[] uriVariables) { return super.expandAndEncode(builder, uriVariables); } }
protected UriComponents expandAndEncode(UriComponentsBuilder builder, Map<String, ?> uriVariables) { if (!isStrictEncoding()) { return builder.buildAndExpand(uriVariables).encode(); } else { Map<String, ?> encodedUriVars = UriUtils.encodeUriVariables(uriVariables); return builder.buildAndExpand(encodedUriVars); } }
private void registerTemplate(final String id, final Class<?> type, final String factoryId, @Nullable final String baseUrl, final BeanDefinition converters, final List<String> plugins) { registry.registerIfAbsent(id, type, () -> { log.debug("Client [{}]: Registering AsyncRestTemplate", id); final DefaultUriTemplateHandler handler = new DefaultUriTemplateHandler(); handler.setBaseUrl(baseUrl); final BeanDefinitionBuilder template = genericBeanDefinition(type); template.addConstructorArgReference(factoryId); template.addPropertyValue("uriTemplateHandler", handler); template.addPropertyValue("messageConverters", converters); template.addPropertyValue("interceptors", plugins.stream() .map(plugin -> genericBeanDefinition(PluginInterceptor.class) .addConstructorArgReference(plugin) .getBeanDefinition()) .collect(toCollection(Registry::list))); return template; }); }
/** * Create a builder with the given method and url template. * @param method the HTTP method (GET, POST, etc) * @param urlTemplate the URL template * @param uriVariables optional variables to expand the template * @return the created builder */ static BodyBuilder method(HttpMethod method, String urlTemplate, Object... uriVariables) { UriTemplateHandler templateHandler = new DefaultUriTemplateHandler(); URI url = templateHandler.expand(urlTemplate, uriVariables); return new DefaultClientRequestBuilder(method, url); }
@Override public UriComponents expandAndEncode(UriComponentsBuilder builder, Map<String, ?> uriVariables) { return super.expandAndEncode(builder, uriVariables); }
protected UriComponents expandAndEncode(UriComponentsBuilder builder, Object[] uriVariables) { if (!isStrictEncoding()) { return builder.buildAndExpand(uriVariables).encode(); } else { Object[] encodedUriVars = UriUtils.encodeUriVariables(uriVariables); return builder.buildAndExpand(encodedUriVars); } }
@Override protected URI expandInternal(String uriTemplate, Object... uriVariables) { UriComponentsBuilder uriComponentsBuilder = initUriComponentsBuilder(uriTemplate); UriComponents uriComponents = expandAndEncode(uriComponentsBuilder, uriVariables); return createUri(uriComponents); }
/** * Create a {@code UriComponentsBuilder} from the URI template string. * This implementation also breaks up the path into path segments depending * on whether {@link #setParsePath parsePath} is enabled. */ protected UriComponentsBuilder initUriComponentsBuilder(String uriTemplate) { UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(uriTemplate); if (shouldParsePath() && !isStrictEncoding()) { List<String> pathSegments = builder.build().getPathSegments(); builder.replacePath(null); for (String pathSegment : pathSegments) { builder.pathSegment(pathSegment); } } return builder; }
@Override public UriComponents expandAndEncode(UriComponentsBuilder builder, Map<String, ?> uriVariables) { return super.expandAndEncode(builder, uriVariables); }
protected UriComponents expandAndEncode(UriComponentsBuilder builder, Map<String, ?> uriVariables) { if (!isStrictEncoding()) { return builder.buildAndExpand(uriVariables).encode(); } else { Map<String, ?> encodedUriVars = UriUtils.encodeUriVariables(uriVariables); return builder.buildAndExpand(encodedUriVars); } }
@Test public void baseUrlWithoutPath() throws Exception { this.handler.setBaseUrl("http://localhost:8080"); URI actual = this.handler.expand("/myapiresource"); assertEquals("http://localhost:8080/myapiresource", actual.toString()); }
@Override protected URI expandInternal(String uriTemplate, Map<String, ?> uriVariables) { UriComponentsBuilder uriComponentsBuilder = initUriComponentsBuilder(uriTemplate); UriComponents uriComponents = expandAndEncode(uriComponentsBuilder, uriVariables); return createUri(uriComponents); }
/** * Create a {@code UriComponentsBuilder} from the URI template string. * This implementation also breaks up the path into path segments depending * on whether {@link #setParsePath parsePath} is enabled. */ protected UriComponentsBuilder initUriComponentsBuilder(String uriTemplate) { UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(uriTemplate); if (shouldParsePath() && !isStrictEncoding()) { List<String> pathSegments = builder.build().getPathSegments(); builder.replacePath(null); for (String pathSegment : pathSegments) { builder.pathSegment(pathSegment); } } return builder; }
@Override public UriComponents expandAndEncode(UriComponentsBuilder builder, Map<String, ?> uriVariables) { return super.expandAndEncode(builder, uriVariables); }
protected UriComponents expandAndEncode(UriComponentsBuilder builder, Object[] uriVariables) { if (!isStrictEncoding()) { return builder.buildAndExpand(uriVariables).encode(); } else { Object[] encodedUriVars = UriUtils.encodeUriVariables(uriVariables); return builder.buildAndExpand(encodedUriVars); } }
@Override protected URI expandInternal(String uriTemplate, Object... uriVariables) { UriComponentsBuilder uriComponentsBuilder = initUriComponentsBuilder(uriTemplate); UriComponents uriComponents = expandAndEncode(uriComponentsBuilder, uriVariables); return createUri(uriComponents); }
/** * Create a {@code UriComponentsBuilder} from the URI template string. * This implementation also breaks up the path into path segments depending * on whether {@link #setParsePath parsePath} is enabled. */ protected UriComponentsBuilder initUriComponentsBuilder(String uriTemplate) { UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(uriTemplate); if (shouldParsePath() && !isStrictEncoding()) { List<String> pathSegments = builder.build().getPathSegments(); builder.replacePath(null); for (String pathSegment : pathSegments) { builder.pathSegment(pathSegment); } } return builder; }