Spring的RestTemplate:用于查询参数的复杂对象

时间:2019-03-07 20:54:31

标签: spring spring-boot resttemplate

我有一个像这样的复杂对象:

const webpack = require('webpack');
const path = require('path');

module.exports = {
    mode: "development",
    entry: ['./main.js', './app/DynClass.js'],
    output: {
        filename: 'main.js',
        path: path.resolve(__dirname, "../client/")
    },
    resolve: {
        alias: {
            "/src": path.resolve(__dirname, '')
        }
    },
    module: {
        rules: [
            {
                test: /\.tpl$/i,
                use: 'raw-loader',
            },
        ]
    }
};

我想调用一个接收所有复杂对象字段的Web服务:http://localhost:8080/api/some_service?a=something&b=something&...&z=something

是否可以将ComplexObject传递给RestTemplate并自动完成工作?还是我必须自己进行手动映射?

谢谢!

1 个答案:

答案 0 :(得分:2)

是的!有一种方法可以传递完整的复杂对象进行服务调用,然后确保可以自动实现。 为此,您必须更改发送此complexObject的方式,并必须使用HTTP POST(强烈建议使用),例如:

public HttpStatus send() 
{
ComplexObject complexObj = getYourFilledObject();


ResponseEntity<HttpStatus> response = restTemplate.postForEntity(ROOT_URI, complexObj, HttpStatus.class);

return response;

}

如果不是,并且GET是唯一的选择,那么很遗憾,您必须按原样发送。因为在一天结束时,要么使用REST模板的功能来获取参数,要么使用参数创建您自己的URI,因此它是相同的HTTP GET,因此您必须通过编程来实现。

有关示例和插图,您可以访问here,最佳参考将是Spring resttemplate文档