为更好更快速的上手Webapi设计模式的接口开发,本文详细解释了在Web API接口的开发过程中,我们可能会碰到各种各样的问题总结了这篇,希望对大家有所帮助。
1:在接口定义中确定MVC的get或者POST方式
由于我们整个Web API平台是基于MVC的基础上进行的API开发,因此整个Web API的接口,在定义的时候,一般需要显示来声明接口是[HttpGet]或者[HttpPost],虽然有些接口也可以不用声明,但是避免出现类似下面的错误信息,显式声明还是有好处的。
如下代码片段依次展示
HttpGet:
=============================================================================
///
/// 查询数据库,检查是否存在指定ID的对象
///
/// 对象的ID值
///存在则返回指定的对象,否则返回Null [HttpGet]
public virtual T FindByID(string id, string token)
================================================
HttpPost:
///
/// 插入指定对象到数据库中
///
/// 指定的对象
///执行操作是否成功。 [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协议)
https://api.weixin.qq.com/cgi-bin/groups/update?access_token=ACCESS_TOKEN
POST数据格式:jsonPOST数据例子:{"group":{"id":108,"name":"test2_modify2"}}
看完以上简单的示例代码描述解释,应该对WebApi有一定初步了解,接下来我们就要通过简单示例程序来了解下。
1:如下图新建web项目
2:选择webapi设计模板
3: 点击确定后,VS会自动为我们创建一个完整的可运行的ASP.NET Web API的项目。
从项目的目录结构可以看出,ASP.NET Web API与ASP.NET MVC项目的结构几乎一致。我们删除为我们默认创建并打开的ValuesController文件(示例性文件,可以参考)。
既然要打造一个IP地址查询服务接口,为了跟上文的服务形式一致,我们还是使用GET请求方式的服务,不过我们这次使用MVC中的Web API来实现。
首先在Models文件夹中建立一个Address模型类。
4:注意(在这里我重要强调下,在了解webapi之前要对
MVC设计模式要有一定的基础)
在这里我简单介绍下生成的MVC 设计结构:如下解释
MVC是模型(model)、视图(view)、控制(controller)这三个单词上的首字母组成。它是一种目前广泛流行的应用模型,它的目的是实现Web系统的职能分工。(如下图解释模型分工层)
设计模式的优点:
MVC的处理过程是这样的:对于每一个用户输入的请求,首先被控制器接收,控制器决定用哪个模型来进行处理,然后模型通过业务逻辑层处理用户的请求并返回数据,最后控制器确定用哪个视图模型,用相应的视图格式化模型返回数据,并通过显示页面呈现给用户。
通过MVC这种特殊的设计结构,大大提高了Web应用的开发效率。
Ok,我们继续继续开工,当生成好后我们架构,要打造一个IP地址查询服务接口,为了跟上文的服务形式一致,我们还是使用GET请求方式的服务,不过我们这次使用MVC中的Web API来实现。
首先在Models文件夹中建立一个Address模型类(模型对象,属性类)如下图添加地址类
在模型类里面添加我们需要的属性参数:如下代码片段
public class Address
{
//以下三个属于模型类属性==【高峰2017-11-17】
///
/// 城市IP段
///
public string IPAddress { get; set; }
///
/// 省份
///
public string Province { get; set; }
///
/// 城市
///
public string City { get; set; }
}
接着我们在Controllers文件夹下建立一个IPAddressController控制器,需要注意的是,这个IPAddressController一定要继承自ApiController类,这样服务才能暴露出来。
如下图展示注意:绿色注释解析
Ok,只要做上面两步就可以运行这个项目了,我们按Ctrl+F5运行整个项目,出现了如下的页面,点击API跳转进入API接口列
我们所写的地址接口:
最后界面展示出来我们需要的三个参数支持application/json, text/json
实例:如下
{
"IPAddress": "sample string 1",
"Province": "sample string 2",
"City": "sample string 3"
}
Ok当我们测试运行没有问情况下需要验证,我们实现的功能:验证有两种方式,一种是直接发布出来,挂载到IIS web服务器上,第二种是
通过第三方插件工具提送开发环境下的测试。此次我们两种都介绍,如下第一种发布挂载到IIS上,ok,废话不多,搞起!!!!
第一:如下图选中项目,选择发布
接下来选择配置文件中的自定义文件,起一个霸气的名字,然后我们下一步如图所示
在Publish method路径选择file System,然后在以下中选择自己定义好的物资位置如下图:
我们继续下一步,如下图:
继续点击下一步:如下图
点击部发布后如下图VS控制台提示:
当出现以上图片显示就说明我们发布成功了,接下来我们就可以发布到IIS上了如下图一步步看图。
1:发布准备文件
2:发布到IIS上
3:然后选中上图红色标识看效果如下图开始测试
Ok,自动这里我们已经发布出来成功的挂在了IIS上,可提供给第三方使用,后面有需要具体流程业务,可以自己在添加流程。
第二:选择第三方插件在开发环境下进行测试
WebApi接口测试工具:WebApiTestClient在便器工具更新下找到该工具
安装WebApiTestClient即可。
Ok,到这里我们这部分webapi接口简单实例就已经完成,下面我将盖实例程序上传到文档供大家参考,修订!!!!
webapi_test为简单实例、HBTechPlatformHis包为整合实体项目案例