需要在后端写代码调用一个接口,这个接口需要很多参数,我能把这些参数封装成实体类区传递过去吗?
比如我时使用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来请求,下面给一个简单实例说明:
/// <summary>
/// 新增一条航班记录
/// </summary>
/// <param name="model">航班数据模型</param>
/// <returns>影响的行数</returns>
[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);
}
/// <summary>
/// 新增一条航班记录
/// </summary>
/// <param name="modelStr">航班数据模型json字符串</param>
/// <returns>影响的行数</returns>
[Route("AddOneFlightGet")]
[HttpGet]
public MReturnResultBase AddOneFlight(string modelStr)
{
this.InitData();
MtbflightForAdd model= JsonConvert.DeserializeObject<MtbflightForAdd >(modelStr);
if (string.IsNullOrEmpty(model.belong_airport_three))
{
model.belong_airport_three = base.GetAirportThreeCode();
}
return flightServiceOpert.AddOneFlight(model);
}
你的思路是对的,按照你那么弄是最好的方法了
可以 就按你的思路来就行
你的思路是比较专业而且可行的,学到了
你的想法没什么问题
可以通过json格式传递参数,然后将各个参数定义到一个字典中,同理,返回参数也可以定义到一个字典中。
什么是字典??
希望可以举个,例子
@lanto_liang: 通过在做项目的时候,将一些常用的字段信息放在数据库的某张表里面,那么这个表就是字典表
比如:全国的省市明细
比如:电商里面销售商品的分类类型
最好用json传递数据结构,参数多的放字典。
什么是字典
希望可以举个例子
那我接受用json,返回也能用json吗?
比如:
JSONObect jo = new JSONObject();
jo.put("username", "lisa");
HttpEntity entity = new HttpEntity(jo, new HttpHeaders());
restTemplate.exchange(url, HttpMethod. GET, entity, JSONObject);
这样有错误吗?
用 json传参,可以传很多很多的数据
那我接受用json,返回也能用json吗?
比如:
JSONObect jo = new JSONObject();
jo.put("username", "lisa");
HttpEntity entity = new HttpEntity(jo, new HttpHeaders());
restTemplate.exchange(url, HttpMethod. GET, entity, JSONObject);
这样有错误吗?
有兴趣的话,可以了解一下GraphQL
0.0谢谢大家