H5W3
当前位置:H5W3 > 问答 > 正文

需要在后端写代码调用一个接口,这个接口需要很多参数,有哪些注意事项

需要在后端写代码调用一个接口,这个接口需要很多参数,我能把这些参数封装成实体类区传递过去吗?
比如我时使用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);
    }

未经允许不得转载:H5W3 » 需要在后端写代码调用一个接口,这个接口需要很多参数,有哪些注意事项

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址