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.代码示例
[RoutePrefix("home")]
public class HomeController : ApiController
{
// GET api/home
[HttpGet]
public string Get()
{
return "test";
}
[HttpGet]
// GET api/home/5
public string Get(int id)
{
return id.ToString();
}
[HttpGet]
// GET api/home?name=test
public string Get(string name)
{
return name;
}
[HttpGet]
// GET api/home/1?name=test
//id 能匹配到{id}路由模板
public string Get(string name, int id)
{
return name + id;
}
[HttpGet]
// GET api/home/1?adress=test
//id 能匹配到{id}路由模板
public string GetAdress(string adress, int id)
{
return adress + id;
}
// GET api/home/1?name=test&age=30
[HttpGet]
public string Get(int id, string name, int age)
{
return id + name + age;
}
// POST api/home
[HttpPost]
public void Post(Person p)
{
}
// POST home/post2
[HttpPost]
[Route("post2")]
public void Post2(Person p)
{
}
[HttpPut]
// PUT api/home/5
public void Put(string id, Person p)
{
}
// PUT home/put2
[HttpPut]
[Route("put2")] //多个POST或PUT需要走action
public void Put2(Person p)
{
}
// DELETE api/home/5
[HttpDelete]
public void Delete(int id)
{
}
// DELETE api/home/5?type=1&name=test
[HttpDelete]
public void Delete(int id, string type, string name)
{
}
}
ASP.NET Web Api OwinSelfHost Restful 使用的更多相关文章
- 【转】使用ASP.NET Web API构建Restful API
https://blog.csdn.net/mzl87/article/details/84947623 要点:使用DTO将内部实体与传输实体分离,利用Automapper实现两者的自动映射
- ASP.NET Core Web API 开发-RESTful API实现
ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...
- 使用 OWIN 作为 ASP.NET Web API 的宿主
使用 OWIN 作为 ASP.NET Web API 的宿主 ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动 设备)的 HTTP 服务. ASP.NET ...
- 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用
由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...
- How ASP.NET Web API 2.0 Works?[持续更新中…]
一.概述 RESTful Web API [Web标准篇]RESTful Web API [设计篇] 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用 二.路由 ...
- ASP.NET Core 中文文档 第二章 指南 (09) 使用 Swagger 生成 ASP.NET Web API 在线帮助测试文档
原文:ASP.NET Web API Help Pages using Swagger 作者:Shayne Boyer 翻译:谢炀(kiler) 翻译:许登洋(Seay) 对于开发人员来说,构建一个消 ...
- 使用 SoapUI 测试ASP.NET Web API
我们为不同的目的开发了很多web服务,经过授权的用户就可以访问和使用这些web服务.soapUI 是一个强大的测试web服务的工具,他不仅可以测试SOAP服务,他也支持测试RESTful服务.在这里我 ...
- 使用 OWIN Self-Host ASP.NET Web API 2
Open Web Interface for .NET (OWIN)在Web服务器和Web应用程序之间建立一个抽象层.OWIN将网页应用程序从网页服务器分离出来,然后将应用程序托管于OWIN的程序而离 ...
- 初试ASP.NET Web API/MVC API(附Demo)
写在前面 HTTP RESTful 创建Web API 调用Web API 运行截图及Demo下载 ASP.NET Web API是一个框架,可以很容易构建达成了广泛的HTTP服务客户端,包括浏览 ...
随机推荐
- 【bzoj4031】[HEOI2015]小Z的房间 解题报告
[bzoj4031][HEOI2015]小Z的房间 Description 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含\(n*m\)个格子的格状矩形,每个格子是一个房 ...
- 破解PostgresSQL登录的6种方法
第一种方式Hydra: Hydra通常是首选工具,它可以对50多种协议执行快速字典暴力攻击,包括telnet,postgres,http,https,smb服务和各种数据库等.现在需要选择一个字典 ...
- Android获取程序路径 (/data/data/appname)
Android获取文件夹路径 /data/data/ http://www.2cto.com/kf/201301/186614.html String printTxtPath = getApplic ...
- 【纪中集训2019.3.12】Z的礼物
题意 已知\(a_{i} = \sum_{j=1}^{i} \{^{i} _{j} \}b_{j}\), 给出\(a_{1} 到 a_{n}\) : 求\(b_{l} 到 b_{r}\)在\(1e9+ ...
- 【整体二分】【P3527】 [POI2011]MET-Meteors
Description 有 n 个国家,总共占有一个环,环被分成了 m 段,已知有 k 次流星雨会落在这个环上的一些位置.再给出每个国家目标收集多少流星,对每个国家求出第几次流星雨后可以满足这个国家的 ...
- EndNote文献悬挂缩进的设置方法及设置参考文献序号后面空格长度
一.EndNote文献悬挂缩进的设置方法 写论文时使用EndNote来插入和管理参考文献是一种非常方便的方法,但有时不同的杂志要求插入的文献要求第二行缩进格式,或者不缩进. 1.在EndNote中Ed ...
- 来自Redis 作者的看法 —— Twemproxy
虽然大量用户使用Redis节点的大型农场,但从项目本身来看,Redis主要是单实例业务. 我有很大的计划与项目一起分发,在某种程度上我不再评估Redis的任何线程版本:对我来说,从Redis的角度看, ...
- python net-snmp使用
安装 官网:http://www.net-snmp.org/download.html 环境:CentOS 6.6 + python 2.7.10 1.下载安装包 net-snmp-5.6.2.1.t ...
- Java基础-程序流程控制第一弹(分支结构/选择结构)
Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...
- bzoj千题计划164:bzoj5123: 线段树的匹配
http://www.lydsy.com/JudgeOnline/upload/201712/prob12.pdf dp[len][0/1] 表示节点表示区间长度为len,节点选/不选的 最大匹配 s ...