WebAPI接口设计经验总结教程.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WebAPI接口设计经验总结教程

Web API接口设计经验总结 在Web API接口的开发过程中,我们可能会碰到各种各样的问题,我在前面两篇随笔《 HYPERLINK /wuhuacong/p/4838220.html Web API应用架构在Winform混合框架中的应用(1)》、《 HYPERLINK /wuhuacong/p/4843422.html Web API应用架构在Winform混合框架中的应用(2)--自定义异常结果的处理》也进行了总的介绍,在经过我的大量模块实践并成功运行后,总结了这篇随笔,希望对大家有所帮助。 1、在接口定义中确定MVC的GET或者POST方式 由于我们整个Web API平台是基于MVC的基础上进行的API开发,因此整个Web API的接口,在定义的时候,一般需要显示来声明接口是[HttpGet]或者[HttpPost],虽然有些接口也可以不用声明,但是避免出现类似下面 的错误信息,显式声明还是有好处的。 例如在基类定义的查找对象接口如下所示。 ///?summary? ????????///?查询数据库,检查是否存在指定ID的对象? ????????///?/summary? ????????///?param?name=id对象的ID值/param? ????????///?returns存在则返回指定的对象,否则返回Null/returns? ????????[HttpGet]? ????????public?virtual?T?FindByID(string?id,?string?token)? 如果是增删改的接口,一般需要声明为POST方式提交数据,而且基于安全性的考虑,需要携带更多的参数。 ///?summary? ????????///?插入指定对象到数据库中? ????????///?/summary? ????????///?param?name=info指定的对象/param? ????????///?returns执行操作是否成功。/returns? ????????[HttpPost]? ????????public?virtual?CommonResult?Insert(T?info,?string?token,?string?signature,?string?timestamp,?string?nonce,?string?appid)?? 2、动态对象的接口定义 在一般的Web API接口里面,我们可能都会碰到很多简单类型的参数,但是又想让它们以POST方式提交数据,那么我们就可以有两种方法来处理,一种是定义一个类来放置 这些参数,一种是采用动态的JObject参数,前者有很多不方便的地方,因为我们不可能为每个接口参数定义多一个实体类,这样可能会有很多难以管理的类 定义。如下面是微信API的调用接口案例,我们也需要设置这样的处理规则。 接口调用请求说明? http请求方式:?POST(请使用https协议)? /cgi-bin/groups/update?access_token=ACCESS_TOKEN? POST数据格式:json? POST数据例子:{group:{id:108,name:test2_modify2}}? 那么我们采用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);? ????????????dynamic?obj?=?param;? ????????????if?(obj?!=?null)? ????????????{? ????????????????string?userName?=?obj.userName;? ????????????????string?userPassword?=?obj.userPassw

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档