需要在后端写代码调用一个接口,这个接口需要很多参数,我能把这些参数封装成实体类区传递过去吗?
比如我时使用restTemplate调用接口,需要传递的参数有6个(userId, count,pagesize,age,name,max),get请求的,而且返回参数也挺多如何操作呢??。请写具体的代码作为答复,谢谢
我的思路是:
1.直接把那6个请求参数封装成一个实体类UserDto,再把返回参数也封装如ResutVo
2.restTemplate.getForObject(url, UserDto,Result.class);
或者把参数从UserDto里面拿出来,放进map集合中,
restTemplate.getForObject(url, map,Result.class);
回答
接口定义的时候,如果你的接口需要通过get来请求,那么在入参定义的时候,直接用一个json字符串来接收比较好,传递的时候参数序列化一个json字符串,接口在收到参数后,在反序列化一次我数据模型;
入参为一个实体模型的参数,更建议你用post来请求,下面给一个简单实例说明:
///
/// 新增一条航班记录
///
/// 航班数据模型
/// 影响的行数
[Route(“AddOneFlight”)]
[HttpPost]
public MReturnResultBase AddOneFlight(MtbflightForAdd model)
{
this.InitData();
if (string.IsNullOrEmpty(model.belong_airport_three))
{
model.belong_airport_three = base.GetAirportThreeCode();
}
return flightServiceOpert.AddOneFlight(model);
}
///
/// 新增一条航班记录
///
/// 航班数据模型json字符串
/// 影响的行数
[Route("AddOneFlightGet")]
[HttpGet]
public MReturnResultBase AddOneFlight(string modelStr)
{
this.InitData();
MtbflightForAdd model= JsonConvert.DeserializeObject(modelStr);
if (string.IsNullOrEmpty(model.belong_airport_three))
{
model.belong_airport_three = base.GetAirportThreeCode();
}
return flightServiceOpert.AddOneFlight(model);
}