zoukankan      html  css  js  c++  java
  • Spring(003)-消费返回list的rest服务

    通过spring提供的RestTemplate就可以访问rest服务。首先需要创建一个RestTemplate,这个需要手动来创建bean

    @Configuration
    public class DemoRestConfiguration {
    
        @Bean
        public RestTemplate restTemplate(SimpleClientHttpRequestFactory simpleClientHttpRequestFactory) {
            return new RestTemplate(simpleClientHttpRequestFactory);
        }
    
        @Bean
        public SimpleClientHttpRequestFactory simpleClientHttpRequestFactory() {
            SimpleClientHttpRequestFactory simpleClientHttpRequestFactory= new SimpleClientHttpRequestFactory();
            simpleClientHttpRequestFactory.setConnectTimeout(1000);
            return simpleClientHttpRequestFactory;
        }
    }

    需要说明的是,这里使用SimpleClientHttpRequestFactory ,是为了可以设置一些参数等,也可以直接new。

    先设计一个返回list的rest服务。

        @GetMapping(value = "/get", produces = "application/json")
        public List<Order> getAllOrders() {
            List<Order> orders = new ArrayList<>();
            for (int i = 0; i < 10; i++) {
                Order order = new Order();
                order.setOrderId(i);
                order.setOrderName(String.format("order:%d", i));
                orders.add(order);
            }
            return orders;
        }

    通过postman访问

    通过代码进行访问-Array

    @Service
    public class OrderConsumer {
    
        private static String HOST = "http://localhost:8080/action/";
        @Autowired
        private RestTemplate restTemplate;
    
        public List<Order> getOrders() {
            Order[] orders = restTemplate.getForObject(String.format("%s/get", HOST), Order[].class);
            return Arrays.asList(orders);
        }
    }

    这里需要注意的是,传入了数组,最终也返回了数组。

    测试代码

    通过代码访问2-ParameterizedTypeReference

       public List<Order> getOrdersPtr() {
            ParameterizedTypeReference<List<Order>> ptr = new ParameterizedTypeReference<List<Order>>() {};
            ResponseEntity<List<Order>> list = restTemplate.exchange(String.format("%s/get", HOST), HttpMethod.GET, null, ptr);
           return list.getBody();
        }
  • 相关阅读:
    iOS中NSString常用操作合集
    iOS利用Runtime自定义控制器POP手势动画(经典)
    iOS学习之UILable上显示不同的字体和颜色
    iOS学习之UICollectionView使用注解
    iOS学习之new与alloc init,[NSArray array] 和 [[NSArray alloc]init] 及 self. 和 _ 的区别
    iOS学习之常用第三方框架总结(经典/必看)
    iOS学习之block总结及block内存管理(必看)
    Http协议与TCP协议理解
    SDImage框架实现原理详解
    iOS NSFileHandle常用操作
  • 原文地址:https://www.cnblogs.com/Brake/p/11854042.html
Copyright © 2011-2022 走看看