这篇做为这个系列的第一篇,做基本的介绍,有经验的人可以直接跳到第二部分创建 ProductController。

 

创建 Web API 项目

在这里我们使用VS2013, .NET 4.5.1创建一个Web API 2的项目

选择项目WEB API模板, 在最下方的MVC主要是默认会自带微软的API Helper, 使用MVC发布

在这里不实用安全

 

这样我们一个项目就初始化好了, 这都要归功于微软强大的VS

 

F5启动项目之后, 点击界面上API按钮可以看到默认创建的API

 

这时就可以用上面的地址通过一些测试工具来测试了. 这里推荐使用fiddler, 后面我们也将广泛使用这款工具来做调试.

 

创建我们自己的API-Products API

相关操作步骤如下

添加ProductController

 

在这里我们设计产品相关的API URL如下, 虽然这个不完全符合RESTFul标准,如有纠结的人直接忽略, 这里主要介绍如何把我们的URL定制成下面这个样子(也是我们项目中的样子):

当然这里的API URL还有其他写法,这个有兴趣的后面章节可以再讨论。

我们的 Product API简单的设计为下面格式:

添加获取产品分页API: api/products/product/getList
添加获取单个产品API: api/products/product/get?productId=产品ID
添加产品新增API: api/products/product/add?productId=产品ID
添加产品更新API: api/products/product/update?productId=产品ID
添加产品删除API: api/products/product/delete?productId=产品ID

在这里我们在刚才新添加的ProductController里中实现上面的API

[RoutePrefix("api/products")]
public class ProductController : ApiController
{
[HttpGet, Route("product/getList")]
public Page<Product> GetProductList()
{
throw new NotImplementedException();
} [HttpGet, Route("product/get")]
public Product GetProduct(Guid productId)
{
throw new NotImplementedException();
} [HttpPost, Route("product/add")]
public Guid AddProduct(Product product)
{
throw new NotImplementedException();
} [HttpPost, Route("product/update")]
public void UpdateProduct(Guid productId, Product product)
{
throw new NotImplementedException();
} [HttpDelete, Route("product/delete")]
public void DeleteProduct(Guid productId)
{
throw new NotImplementedException();
}
}

添加之后启动程序,看到的结果如下

 

OK, 到这里大家加上自己的后端业务逻辑,完成业务层面的操作就可以发布使用了。

 

本章代码: 代码下载(代码托管在CSDN Code)

【WEB API项目实战干货系列】- WEB API入门(一)的更多相关文章

  1. 【WEB API项目实战干货系列】- API登录与身份验证(三)

    上一篇: [WEB API项目实战干货系列]- 接口文档与在线测试(二) 这篇我们主要来介绍我们如何在API项目中完成API的登录及身份认证. 所以这篇会分为两部分, 登录API, API身份验证. ...

  2. 【WEB API项目实战干货系列】- API访问客户端(WebApiClient适用于MVC/WebForms/WinForm)(四)

    这几天没更新主要是因为没有一款合适的后端框架来支持我们的Web API项目Demo, 所以耽误了几天, 目前最新的代码已经通过Sqlite + NHibernate + Autofac满足了我们基本的 ...

  3. 【WEB API项目实战干货系列】- 导航篇(十足干货分享)

    在今天移动互联网的时代,作为攻城师的我们,谁不想着只写一套API就可以让我们的Web, Android APP, IOS APP, iPad APP, Hybired APP, H5 Web共用共同的 ...

  4. 【WEB API项目实战干货系列】- 接口文档与在线测试(二)

    上一篇: [WEB API项目实战干货系列]- Web API 2入门(一) 这一篇我们主要介绍如何做API帮助文档,给API的调用人员介绍各个 API的功能, 输入参数,输出参数, 以及在线测试 A ...

  5. Selenium Web 自动化 - 项目实战(三)

    Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解  3.1 解析新增页面目录  3.2 解析新增测试用例目录  3. ...

  6. Selenium Web 自动化 - 项目实战环境准备

    Selenium Web 自动化 - 项目实战环境准备 2016-08-29 目录 1 部署TestNG  1.1 安装TestNG  1.2 添加TestNG类库2 部署Maven  2.1 mav ...

  7. Selenium Web 自动化 - 项目实战(二)

    Selenium Web 自动化 - 项目实战(二) 2016-08-08 什么是数据驱动?简答的理解就是测试数据决定了测试结果,这就是所谓数据驱动.数据驱动包含了数据,他就是测试数据,在自动化领域里 ...

  8. ASP.NET Core3.1使用IdentityServer4中间件系列随笔(二):创建API项目,配置IdentityServer保护API资源

    配套源码:https://gitee.com/jardeng/IdentitySolution 接上一篇<ASP.NET Core3.1使用IdentityServer4中间件系列随笔(一):搭 ...

  9. 从 0 使用 SpringBoot MyBatis MySQL Redis Elasticsearch打造企业级 RESTful API 项目实战

    大家好!这是一门付费视频课程.新课优惠价 699 元,折合每小时 9 元左右,需要朋友的联系爱学啊客服 QQ:3469271680:我们每课程是明码标价的,因为如果售价为现在的 2 倍,然后打 5 折 ...

随机推荐

  1. JAVA提高一:静态导入、可变参数、增强型for循环、装拆箱

    国庆假期已结束,假期8天,全部在家带娃,体会到了妻子的不容易,需要好好努力来多赚钱了,言归正传.10月份开始进去JAVA 高级语法知识学习,本节复习学习的为:静态导入.可变参数.增强型for循环.装拆 ...

  2. J2EE走向成功路-02-Struts2 配置(Maven)

    在上一篇中,介绍了使用jar包搭建Struts2框架,这一篇中来介绍一下在Maven环境下搭建Struts2框架,主要为配置Maven. 1.下载Maven,官网:http://maven.apach ...

  3. Iframe父子窗口之间的跨域事件调用和传值

    实现方案1:location.hash传值 父页面:parent.html(所在域:www.parent.com) 子页面:child.html(所在域:www.child.com) 要实现父子页面双 ...

  4. vue.js实例对象+组件树

    vue的实例对象 首先用js的new关键字实例化一个vue el: vue组件或对象装载在页面的位置,可通过id或class或标签名 template: 装载的内容.HTML代码/包含指令或者其他组件 ...

  5. 在项目中集成jetty server

    为什么使用jetty 使用 tomcat 开发效率并不是太高,并且在eclipse有时两秒做更新,有时候又得手动去部署显得非常麻烦.折算我们可以使用 jetty server 由于 eclipse开发 ...

  6. NOR和NAND

    NOR和NAND NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,198? ...

  7. 案例:AWR手工创建快照失败,SYSAUX表空间剩余不足处理

    案例:AWR手工创建快照失败,SYSAUX表空间剩余不足处理 版本:Oracle 11.2.0.4 RAC 问题现象:AWR手工创建快照失败,SYSAUX表空间剩余不足. 1. 查看SYSAUX表空间 ...

  8. C# WinForm DataGridView让DataPropertyName支持复杂属性

    首先给Grid添加BindingSource,类型为BindingForForm2.或者设置Grid的DataSource为IEnumerable<BindingForForm2>. Bi ...

  9. 关于EF Code First模式不同建模方式对建表产生的影响

    今天在学EF Code First模式的时候,发现几个很有趣的问题,问题如下: 1.当编写玩实体后,不指定任何主键约束,EF会找长的最像Id的,然后设置其为主键,验证代码如下: //User类 cla ...

  10. Servlet 笔记-过滤器

    Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息. 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet.Servlet 过滤 ...