为更好更快速的上手Webapi设计模式的接口开发,本文详细解释了在Web API接口的开发过程中,我们可能会碰到各种各样的问题总结了这篇,希望对大家有所帮助。

1:在接口定义中确定MVC的get或者POST方式

由于我们整个Web API平台是基于MVC的基础上进行的API开发,因此整个Web API的接口,在定义的时候,一般需要显示来声明接口是[HttpGet]或者[HttpPost],虽然有些接口也可以不用声明,但是避免出现类似下面的错误信息,显式声明还是有好处的。

如下代码片段依次展示

HttpGet

=============================================================================

/// <summary>
        /// 查询数据库,检查是否存在指定ID的对象
        /// </summary>
        /// <param name="id">对象的ID值</param>
        /// <returns>存在则返回指定的对象,否则返回Null</returns>[HttpGet]
        public virtual T FindByID(string id, string token)

================================================

HttpPost:

        /// <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协议)
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】

/// <summary>

/// 城市IP段

/// </summary>

public string IPAddress { get; set; }

/// <summary>

/// 省份

/// </summary>

public string Province { get; set; }

/// <summary>

/// 城市

/// </summary>

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包为整合实体项目案例

C#版ASP.NET Web API使用示例的更多相关文章

  1. ASP.NET Web API 开篇示例介绍

    ASP.NET Web API 开篇示例介绍 ASP.NET Web API 对于我这个初学者来说ASP.NET Web API这个框架很陌生又熟悉着. 陌生的是ASP.NET Web API是一个全 ...

  2. 旅图beta版 asp.net web api 单元测试

    旅图 beta版 asp.net web api 单元测试 测试接口:http://120.27.7.115:1010/Help 测试目的 对每个接口单元进行测试,保证每个接口的可靠性. 单元描述 注 ...

  3. ASP.NET Web API 入门示例详解

    REST服务已经成为最新的服务端开发趋势,ASP.NET Web API即为.NET平台的一种轻量级REST架构. ASP.NET Web API直接借鉴了ASP.NET MVC的设计,两者具有非常类 ...

  4. ASP.NET Web API使用示例

    原文地址:https://blog.csdn.net/chinacsharper/article/details/21333311 上篇博客讲解rest服务开发时,曾经提到过asp.net mvc中的 ...

  5. ASP.net Web API综合示例

    目录 概述 功能介绍 程序结构 服务器端介绍 客户端介绍 “契约” Web API设计规则 并行写入冲突与时间戳 身份验证详解 Web API验证规则 客户端MVVM简介 Web.Config 本DE ...

  6. 支持Ajax跨域访问ASP.NET Web Api 2(Cors)的简单示例教程演示

    随着深入使用ASP.NET Web Api,我们可能会在项目中考虑将前端的业务分得更细.比如前端项目使用Angularjs的框架来做UI,而数据则由另一个Web Api 的网站项目来支撑.注意,这里是 ...

  7. Asp.Net Web Api 2 实现多文件打包并下载文件示例源码_转

    一篇关于Asp.Net Web Api下载文件的文章,之前我也写过类似的文章,请见:<ASP.NET(C#) Web Api通过文件流下载文件到本地实例>本文以这篇文章的基础,提供了Byt ...

  8. ASP.NET MVC Web API使用示例

    上篇博客讲解rest服务开发时,曾经提到过asp.net mvc中的rest api,由于篇幅原因,没有在上篇博客中进行讲解,这里专门拿出来进行讨论.还是一样引用上次的案例,用asp.net mvc提 ...

  9. 在ASP.NET Web API 2中使用Owin OAuth 刷新令牌(示例代码)

    在上篇文章介绍了Web Api中使用令牌进行授权的后端实现方法,基于WebApi2和OWIN OAuth实现了获取access token,使用token访问需授权的资源信息.本文将介绍在Web Ap ...

随机推荐

  1. hbase shell命令及Java接口介绍

    一. shell命令 1. 进入hbase命令行  ./hbase shell 2. 显示hbase中的表  list3. 创建user表,包含info.data两个列族create 'user', ...

  2. 【学习笔记】第二章 python安全编程基础---正则表达式

    一.python正则表达式 定义:正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式相匹配: 1.1RE模块:是python语言拥有全部的正则表达式功能的一个正则模块: 常见 ...

  3. 基于通用jar、动态配置、组件编排的会员任务中心系统设计

    # 一.聊聊本文想说什么:   为更好帮助商家的会员快速成长,保持用户活性,完善用户的成长体系,有赞用户中心-会员成长团队基于现有的业务场景,设计了一套较完备任务中心系统.同时也有很多通用技术组件能够 ...

  4. JAVA WEB中的Servlet过滤器

    实现一个Servlet过滤器,可以对用户登录情况进行控制.要求如下: 1)访问路径是admin下的资源,需要登录,如果用户没有登录,自动转向用户登录页面.用户登录成功后,再次访问admin下的资源不需 ...

  5. Linux 笔记 - 第十八章 Linux 集群之(二)LVS 负载均衡集群

    一.前言 Linux 集群从功能上可以分为两大类:高可用集群和负载均衡集群.上一篇已经讲解了 HA 高可用集群,此节讲解负载均衡集群. 负载均衡集群(Load Balance Cluseter,简称 ...

  6. 想研究BERT模型?先看看这篇文章吧!

    最近,笔者想研究BERT模型,然而发现想弄懂BERT模型,还得先了解Transformer. 本文尽量贴合Transformer的原论文,但考虑到要易于理解,所以并非逐句翻译,而是根据笔者的个人理解进 ...

  7. Docker 01 - CentOS 7 中安装 Docker 的详细步骤

    目录 1 初识 Docker 1.1 Docker 原理简介 1.2 Docker 核心概念 2 安装 Docker 2.1 查看系统内核版本 2.2 更新 yum 包 2.3 安装软件包 2.4 向 ...

  8. Wordpress SEO

    Wordpress SEO 安装插件 Baidu Sitemap Generator, 作者 柳城, 主要用于按照配置参数生成 sitemap.xml 网站地图. 设置路径 设置 => Baid ...

  9. Hadoop源代码点滴-基础概念

    大数据特征:volume(数量).variety(多样性).velocity(产生的速度) 大数据特征:多.乱.快.杂 数据的来源:业务数据.日志.管理文档(OCR).互联网.物联网.外购

  10. Shiro集成SSM基于URL权限管理(一)

    学习了shiro之后,我们就可以说尝试把shiro加入ssm中,并做一套基于URL的权限管理. 其他的准备工作就不多说了,直接动手操作,看到效果再去理解. 表结构 执行如下,数据库名字可以自行修改,不 ...