在我的Spring Boot项目中,我在application-dev.yml文件中设置了几个endpoint(它们引用一些GET或POST REST API)。
spring:
username: xxx
password: acb132
route:
source:
protocol: https://
ip: 10.xxx.y.zz/
root: "swdfr/"
paths: >
- "ofh/ert/hAFG5"
- "ofh/ert/ryt54"
我想用一个方法在一个服务类中管理这些endpoint。目前我已经实现了这个解决方案:
//REST CONTROLLER
@GetMapping("/Multiple_Get")
public void manageGetEndpointsWithRestTemplate() throws Exception{
final String methodName = "manageGetEndpointsWithRestTemplate()";
try {
service.manageGetEndpointsWithRestTemplate();
} catch (final Exception e) {
this.errorLog(methodName, e);
throw e;
}
}
//SERVICE
@ResponseBody
public void manageGetEndpointsWithRestTemplate() {
final String methodName = "manageGetEndpointsWithRestTemplate()";
try {
String urlGet1 = protocol + ip + root + paths.get(0);
String urlGet2 = protocol + ip + root + paths.get(1);
HttpHeaders headers = new HttpHeaders();
headers.setBasicAuth(username, password);
HttpEntity request = new HttpEntity(headers);
try {
RestTemplate restTemplate;
if (urlGet1.startsWith("https") || urlGet2.startsWith("https")) {
restTemplate = getRestTemplateForSelfSsl();
} else {
restTemplate = new RestTemplate();
}
// GET1
ResponseEntity<String> response1 = restTemplate.exchange(urlGet1, HttpMethod.GET, request,
String.class);
HttpStatus statusCode1 = response1.getStatusCode();
logger.info("STATUS GET1: " + statusCode1);
// GET2
ResponseEntity<String> response2 = restTemplate.exchange(urlGet2, HttpMethod.GET, request,
String.class);
HttpStatus statusCode2 = response2.getStatusCode();
logger.info("STATUS GET2: " + statusCode2);
} catch (HttpStatusCodeException e) {
logger.error(e.getMessage());
}
} catch (Exception e) {
logger.error(e.getMessage());
}
}
我希望使用一个单一的方法,使其尽可能具有通用性,特别是当我必须管理大量endpoint时。你有什么想法吗?提前致谢
您可以遍历所有路径
并执行公共代码,因为您正在为所有路径执行get
请求。
@ResponseBody
public void manageGetEndpointsWithRestTemplate() {
final String methodName = "manageGetEndpointsWithRestTemplate()";
List<String> paths = new ArrayList<>();
try {
paths.forEach(path -> {
String urlGet = protocol + ip + root + path;
HttpHeaders headers = new HttpHeaders();
headers.setBasicAuth(username, password);
HttpEntity request = new HttpEntity(headers);
try {
RestTemplate restTemplate = urlGet.startsWith("https") ? getRestTemplateForSelfSsl() : new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(urlGet, HttpMethod.GET, request,
String.class);
HttpStatus statusCode = response.getStatusCode();
logger.info("STATUS GET - {} : {}", urlGet, statusCode);
} catch (HttpStatusCodeException e) {
logger.error(e.getMessage());
}
});
} catch (Exception e) {
logger.error(e.getMessage());
}
}
如果要使用post
或任何其他HTTP方法,请在application-dev.yml
文件中提及paths
。在传入resttemplate.exchange()
之前,添加一些额外的逻辑来确定http.xxx
。
我在一个项目中使用Spring for Android,我需要管理cookie商店/经理。我可以通过使用的实现向任何请求添加cookie,但我希望在发送请求时删除其中一些cookie。 更具体地说,我面临的问题是,对于Froyo,在中特定的实现(带有)会自动将来自的cookie添加到头-即使我明确设置了头。但是我想自己管理这些cookie(要么删除其中的一些,要么更新它们的值)。而对于上面的姜饼(
本文向大家介绍springboot中thymeleaf模板使用详解,包括了springboot中thymeleaf模板使用详解的使用技巧和注意事项,需要的朋友参考一下 这篇文章将更加全面详细的介绍thymeleaf的使用。thymeleaf 是新一代的模板引擎,在spring4.0中推荐使用thymeleaf来做前端模版引擎。 thymeleaf介绍 简单说, Thymeleaf 是一个跟 Vel
问题内容: 在Go模板中,有时将正确的数据传递到正确的模板的方式令我感到尴尬。用流水线参数调用模板看起来就像只用一个参数调用函数。 假设我有一个Gophers网站,有关Gophers。它具有一个主页主模板和一个用于打印Gophers列表的实用程序模板。 http://play.golang.org/p/Jivy_WPh16 输出: 现在,我想在子模板中添加一些上下文:在列表内以不同的方式设置名称“
我正在尝试对具有相同生命周期的许多不同的Postgresql架构进行迁移。根据飞行路线文档,这种情况应该有效。我的 ANT 脚本中有以下内容:当我运行迁移时,更改仅应用于第一个(默认)架构。 是我做错了什么,还是flyway.schemas属性只对clean有效? 谢谢
在本章中,我们将研究Joomla中的Template Manager 。 它管理网站中使用的各种模板。 可以在不改变网站内容结构的情况下使用模板。 模板管理器 以下是在Joomla中编辑模板管理器的简单步骤。 Step (1) - 单击Extensions → Template Manager ,如下所示。 Step (2) - Template Manager:Styles页面显示如下。 在这里
本文向大家介绍SpringBoot使用thymeleaf模板过程解析,包括了SpringBoot使用thymeleaf模板过程解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了SpringBoot使用thymeleaf模板过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.导入依赖 2.application.yml文件中新