Web API接口设计经验总结

网友投稿 312 2022-10-22

Web API接口设计经验总结

1、在接口定义中确定MVC的GET或者POST方式

例如在基类定义的查找对象接口如下所示。

/// 《summary》

/// 《/summary》

/// 《returns》存在则返回指定的对象,否则返回Null《/returns》

[HttpGet]

public virtual T FindByID(string id, string token)

/// 《summary》

/// 插入指定对象到数据库中

/// 《/summary》

/// 《param name=“info”》指定的对象《/param》

/// 《returns》执行操作是否成功。《/returns》

[HttpPost]

2、动态对象的接口定义

在一般的Web API接口里面,我们可能都会碰到很多简单类型的参数,但是又想让它们以POST方式提交数据,那么我们就可以有两种方法来处理,一种是定义一个类来放置这些参数,一种是采用动态的JObject参数,前者有很多不方便的地方,因为我们不可能为每个接口参数定义多一个实体类,这样可能会有很多难以管理的类定义。如下面是微信API的调用接口案例,我们也需要设置这样的处理规则。

接口调用请求说明

POST数据格式:json

那么我们采用JObject是这么样的呢,我们来看接口的定义和处理代码。JObject是Newtonsoft.Json.Linq命名空间下的一个对象。

/// 《summary》

/// 修改用户密码

/// 《/summary》

/// 《param name=“param”》包含userName和userPassword的复合对象《/param》

/// 《param name=“token”》用户访问令牌《/param》

/// 《returns》《/returns》

[HttpPost]

public CommonResult ModifyPassword(JObject param, string token)

{

//令牌检查,不通过则抛出异常

CheckResult checkResult = CheckToken(token);

{

string userName = obj.userName;

string userPassword = obj.userPassword;

bool success = BLLFactory《User》.Instance.ModifyPassword(userName, userPassword);

return new CommonResult(success);

}

else

{

}

}

dynamic obj = param;

这样我们就可以在调用的时候,动态POST对应的JSON对象给Web API接口,而不需要预先定义各种接口参数的类了。

/// 《summary》

/// 调用Web API接口,修改用户密码

/// 《/summary》

/// 《param name=“userName”》用户名称《/param》

/// 《param name=“userPassword”》修改的密码《/param》

/// 《returns》如果修改成功返回true,否则返回false《/returns》

public bool ModifyPassword(string userName, string userPassword)

{

var postData = new

{

userName = userName,

userPassword = userPassword

}.ToJson();

CommonResult result = JsonHelper《CommonResult》.ConvertJson(url, postData);

return (result != null) ? result.Success : false;

}

其中GetTokenUrl是根据token和API的地址等参数,构建一个完整的提交地址。我们在上面代码通过

var postData = new

{

userName = userName,

userPassword = userPassword

}.ToJson();

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:docker部署mongo,并配置用户
下一篇:harbor私有仓库部署与管理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~