ASP.NET Web Api OwinSelfHost Restful 使用

一、前言

总结一下什么是RESTful架构:

  (1)每一个URI代表一种资源;

  (2)客户端和服务器之间,传递这种资源的某种表现层;

  (3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

二、示例

Restful 路由模板默认没有{action},如有特殊需要,则需要启用属性路由功能配合使用

1.Startup.cs

     public void Configuration(IAppBuilder app)
        {
            HttpConfiguration config = new HttpConfiguration();

            // 启用Web API特性路由
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

            //删除XML序列化器
            config.Formatters.Remove(config.Formatters.XmlFormatter);
            //配置跨域
            app.UseCors(CorsOptions.AllowAll);
            app.UseWebApi(config);

        }

2.代码示例

 1     [RoutePrefix("home")]
 2     public class HomeController : ApiController
 3     {
 4         // GET api/home
 5         [HttpGet]
 6         public string Get()
 7         {
 8             return "test";
 9         }
10
11         [HttpGet]
12         // GET api/home/5
13         public string Get(int id)
14         {
15             return id.ToString();
16         }
17
18         [HttpGet]
19         // GET api/home?name=test
20         public string Get(string name)
21         {
22             return name;
23         }
24
25         [HttpGet]
26         // GET api/home/1?name=test
27         //id 能匹配到{id}路由模板
28         public string Get(string name, int id)
29         {
30             return name + id;
31         }
32
33
34         // GET api/home/1?name=test&age=30
35         [HttpGet]
36         public string Get(int id, string name, int age)
37         {
38             return id + name + age;
39         }
40
41         // POST api/home
42         [HttpPost]
43         public void Post(Person p)
44         {
45         }
46
47
48         // POST home/post2
49         [HttpPost]
50         [Route("post2")]
51         public void Post2(Person p)
52         {
53         }
54
55         [HttpPut]
56         // PUT api/home/5
57         public void Put(string id, Person p)
58         {
59         }
60
61         // PUT home/put2
62         [HttpPut]
63         [Route("put2")] //多个POST或PUT需要走action
64         public void Put2(Person p)
65         {
66         }
67
68         // DELETE api/home/5
69         [HttpDelete]
70         public void Delete(int id)
71         {
72         }
73
74         // DELETE api/home/5?type=1&name=test
75         [HttpDelete]
76         public void Delete(int id, string type, string name)
77         {
78         }
79     }
时间: 2024-10-03 21:41:32

ASP.NET Web Api OwinSelfHost Restful 使用的相关文章

ASP.NET Core Web API 开发-RESTful API实现

REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representational State Transfer,简称REST)是Roy Thomas Fielding博士于2000年在他的博士论文 "Architectural Styles and the Design of Network-based Software Architectures" 中提出来的一种万维网软件架构风格. 目前在三种主流的Web服务实现方案中,因为R

使用OWIN 构建自宿主ASP.NET Web API 2

--Use OWIN to Self-Host ASP.NET Web API 2 原文链接:http://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api 摘要:ASP.NET Web API 2拥有符合RESTFUL风格,原生支持HTML协议,解耦IIS和windows server服务器等诸多优秀特性.本文讲述如何使用OWIN构建ASP.NET Web API 2.在翻译的基础

使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【开篇】【持续更新中。。。】

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http://bitoftech.net/2013/11/25/detailed-tutorial-building-asp-net-

A Book Store Application Using AngularJS and Asp.Net Web Api

There are many examples out there demonstrating how AngularJS and Web API can be used together but almost all of them are in MVC, so I tried to implement this using Asp.Net web forms and this is what I came up with. For those who are new to AngularJS

Asp.Net Web API 2第八课——Web API 2中的属性路由

参考页面: http://www.yuanjiaocheng.net/webapi/web-api-gaisu.html http://www.yuanjiaocheng.net/webapi/create-web-api-proj.html http://www.yuanjiaocheng.net/webapi/test-webapi.html http://www.yuanjiaocheng.net/webapi/web-api-controller.html http://www.yuan

ASP.NET Web API 简介

ASP.NET Web API 简介 ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RESTful 服务的理想平台. ASP.NET Web API 特性 ASP.NET Web API 包含下列特性: 先进的 HTTP 编程模型: 使用新的强类型的 HTTP 对象模型直接操作 HTTP 请求和响应, 在 HTTP客户端使用相同的编程模型和 HTTP

ASP.NET Web API 应用教程(一) ——数据流使用

相信已经有很多文章来介绍ASP.Net Web API 技术,本系列文章主要介绍如何使用数据流,HTTPS,以及可扩展的Web API 方面的技术,系列文章主要有三篇内容. 主要内容如下: I  数据流 II 使用HTTPS III 可扩展的Web API 文档 项目环境要求 VS 2012(SP4)及以上, .Net 框架4.5.1 Nuget包,可在packages.config 文件中查寻 本文涉及的知识点 ActionFilter AuthorizationFilter Delegate

学习ASP.NET Web API框架揭秘之“HTTP方法重写”

最近在看老A的<ASP.NET Web API 框架揭秘>,这本书对于本人现阶段来说还是比较合适的(对于调用已经较为熟悉,用其开发过项目,但未深入理解过很多内容为何可以这样“调用”).看到第四章了,有些内容看着虽能理解,但未遇到过具体的问题,看起来也就没有豁然开朗之感.同时,有些内容是一眼就觉得“这是干货”,可能是之前遇到过某些问题,当时用一些搓办法解决,但现在看到书中的示例就如获至宝.所以,就挑些单独能拎出来且马上就能在项目中应用的内容出来与大家分享交流下吧.其中会穿插一些框架中的知识点.不

ASP.NET Web API是什么?

[翻译]ASP.NET Web API是什么? 说明:随微 软ASP.NET MVC 4一起发布的还有一个框架,叫做ASP.NET Web API.目前国内关注这项技术的人似乎还很少,这方面的文章也不多见.开发Web应用程序也许可以只用MVC这样的技术,而不用这项Web API技术,但如果用了,会给你的应用程序带来极大的好处.为此,本人转载并翻译了以下这篇文章,后面还会陆续翻译该项技术的一些官方教程.大家一起学 习,共同提高. Microsoft ASP.NET: What's This New