技术交流QQ群【JAVA,.NET,BigData,AI】:170933152

网上找的,看这个例子就够了

使用ASP.Net WebAPI构建REST服务(一)——简单的示例

由于给予REST的Web服务非常简单易用,它越来越成为企业后端服务集成的首选方法。本文这里介绍一下如何通过微软的Asp.Net WebAPI快速构建REST-ful 服务。

首先创建一个Asp.Net Web应用程序(我这里用的是Visual Studio 2013,它已经内置了Web API2)。

在出来的模板中选择Empty(空项目),并勾选WebAPI。点击确定后,就创建了一个空的WebAPI服务。

此时只有一个空项目,还没有任何功能,在进行下一步之前,首先我们来看一下REST的基本操作模型,大致可以分为如下四种:

  • POST — 创建资源

  • GET — 检索资源

  • PUT — 更新资源

  • DELETE — 删除资源

非常经典的CRUD模型。在Web API中实现这样一个的模型是非常简单的,直接使用向导建一个Controller即可

如果用传统的向导,记得把向导后面的那个1给去掉:

默认的模板内容如下:

public class ValuesController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

// GET api/<controller>/5
        public string Get(int id)
        {
            return "value";
        }

// POST api/<controller>
        public void Post([FromBody]string value)
        {
        }

// PUT api/<controller>/5
        public void Put(int id, [FromBody]string value)
        {
        }

// DELETE api/<controller>/5
        public void Delete(int id)
        {
        }
    }

这其实已经帮我们实现了一个最基本的服务了,不过这个服务中只实现了Get,它支持如下两种中方式的URL访问(其它的方式也能访问,但没有具体的效果):

  • api/values        访问所有的Value列表

  • api/values/{id}        根据ID访问Value

按Ctrl + F5中执行,在浏览器中输入相应的地址即可看到结果

下面我们要做的就是完善它,实现一个简单的查询功能,这里我引用了微软官方的一个例子:

public class ProductsController : ApiController
{
        Product[] products = new Product[]
        {
            new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 },
            new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M },
            new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M }
        };

public IEnumerable<Product> Get()
        {
            return products;
        }

public IHttpActionResult Get(int id)
        {
            var product = products.FirstOrDefault((p) => p.Id == id);
            if (product == null)
            {
                return NotFound();
            }
            return Ok(product);
        }
    }

public class Product
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Category { get; set; }
        public decimal Price { get; set; }
    }

此时,我们就可以在浏览器中看到结果了(由于Controller改名字了,此时的地址就变成了api/products)

到此为止,一个基于Asp.net Web API的 简单的REST Web服务就构建完成了,由于篇幅所限,这里就不做更多的介绍了,跟多信息可以参看微软官方文档:Getting Started with ASP.NET Web API 2。另外,如果想对REST有更深入的了解的话,可以看看infoq的这篇文章:深入浅出REST。关于Asp.net Web API其它内容,我后续大概还会陆续写几篇文章来介绍它。

VB.NET工作笔记006---用visual studio2017 编写RESTFUL API相关推荐

  1. VB.NET工作笔记005---用visual studio2017 编写WCF vb.net webservice

    技术交流QQ群[JAVA,C,.NET,BigData,AI]:170933152 近期有个项目要这样用,用vb.net的winform,去调用vb.net写的webservice,真是奇怪的需求,都 ...

  2. VB.Net工作笔记001---用ASP调用VB.NET编写的dll_ClassLibrary

    JAVA技术交流QQ群:170933152 最近做的这个项目真是旧啊..变态啊...为啥想起来用asp去调用vb.net 写的dll...天呐... 据说,2020年server2008 不再支持as ...

  3. VB.NET在WinForm中嵌入谷歌浏览器_制作全屏显示网页程序_并读取INI配置文件_根据配置文件显示不同的网页---VB.NET工作笔记016

    我们做了个项目,科技馆的,需要把绚丽的网页,全屏放到浏览器上显示,但是....他们做的这个网页...我去,只支持谷歌这样的浏览器,在IE这样的浏览器模式下,显示有问题... 不知道是不是因为,没有使用 ...

  4. VB.NET工作笔记015---vb.net获取cpu使用率,内存使用率_未能找到具有指定类别名“Processor”、计数器名“% Processor Time”的性能计数

    vb.net获取系统CPU的使用率,和内存的使用率 获取cpu的使用率,用: performanceCounter1这个控件,一定要记得,写上Processor 这个: counterName cat ...

  5. VB.NET工作笔记009---硬件设备写码工具编写_使用串口通信_发送AT指令

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 只能说很简单... 这里以使用AT命令VB.net启用SIM卡锁定(Enable SIM Lock ...

  6. vb升级工作笔记001---VB.NET升级到VB.NET 随时更新

    技术交流QQ群[JAVA,.NET,BigData,AI]:170933152 VB.NET2008-->VB.NET2017: 升级常见问题: 1.resx文件相关问题,有些因为vs验证引起的 ...

  7. VB.NET工作笔记008---vs2017创建使用WCF服务_并调用服务demo

    技术交流QQ群[JAVA,.NET,BigData,AI]:170933152 声明,找的例子,之前没有做过wcf,但是看了看例子感觉挺简单的,记一下吧 WCF的全称是Windows Communic ...

  8. VB.NET工作笔记007---ASP.NET中Session超时一直不起作用

    技术交流QQ群[JAVA,.NET,BigData,AI]:170933152 最后发现是这个原因,在IIS中找到应用程序池,然后右边点击,详细设置,然后找到,进程模块中的 最大工作进程数,设置为1 ...

  9. VB.NET工作笔记003---使用ASP_vbs脚本_或vb.net调用Sqlserver DTS文件

    JAVA技术交流QQ群:170933152 旧版的asp的估计以后也没人用了,用估计也要换思路了.. vb.net类似下面的把 c#中调用SQLserver的DTS包进行数据的转换 DTS是sql s ...

最新文章

  1. 图论-无向图的连通性(POJ1144)(POJ3352)
  2. Python 比特币 教程 之一:创建机器人
  3. Linux2.6内核--中断线被关闭的情况
  4. require.js基本认识
  5. 怎么解决线上CPU100%的问题
  6. android唤醒前台,Android将后台应用唤起到前台的方法 (SDK 4.0, ActivityLifecycleCallbacks)...
  7. 如何在3个月内拥有3年的工作经验
  8. 缓存-SpringCache-自定义缓存配置
  9. Hadoop:mapreduce的splitsize和blocksize
  10. background使用
  11. mysql在哪里写代码_[译] 如何写好 Go 代码
  12. 阿里一面 缓存穿透、缓存击穿、缓存雪崩和热点数据失效问题的解决方案
  13. matlab更改矩阵的值,怎么修改矩阵中的某些元素 或者简单点说保留矩阵中的元素...
  14. python3.7语法错误_Tweepy不会安装在Python3.7上;显示“语法错误”
  15. oracle 产看执行计划_ORACLE数据库查看执行计划的方法
  16. SlickEdit 使用技巧大收集
  17. 知道了我服务器的公网ip,是否可以入侵我的服务器?
  18. Python入门50个小程序
  19. “穷人思维”和“富人思维”有什么区别?
  20. 计算机设备固定资产拆旧年限,固定资产折旧年限最新规定(全)

热门文章

  1. C语言小知识---为什么要使用指针
  2. hihoCoder-1097-最小生成树一·Prim算法 (最小生成树)
  3. log4j控制日志的输出文件
  4. 2017春季学期编译原理期末实验报告
  5. 我国云计算还处于初步阶段,产业标准需规划
  6. 《个体软件过程》—第1章1.3节个体软件过程
  7. linux服务器如何添加sudo用户
  8. k8s之scheduler
  9. Flex4中使用WCF
  10. 深入系统底层trace