REST学习总结
在.NET世界中,一提到Web Service首先想到的肯定是WSDL、SOAP等术语,但Web Service的实现方式不仅仅只有这一种,Web Service的实现方式包括:XML-RPC、REST和RPC+REST混合型。.NET中的Web Service属于XML-RPC风格。本文中谈到的REST将是另一种新奇的Web Service实现方式。
REST:表象化状态转变(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。其基本思想是通过HTTP协议提供的方法(GET、POST、PUT和DELETE)访问URI资源,服务器端通过识别URI和具体的HTTP来完成功能。REST风格的Web Service在系统交互中使用的是标准的HTTP内容,相对于XML-RPC使用SOAP对交互内容进行封装的做法显得更简洁。
REST示例:
假设原先有下面一个Web Service接口:
使用REST风格来实现同样的接口,就需要:
1. 定义URI
3. 客户端模拟HTTP请求来调用接口
3.1 获取订单"1234"的详细信息
参考文章:
《深入浅出REST》 http://www.infoq.com/cn/articles/rest-introduction
《Make Yahoo! Web Service REST Calls With C#》http://developer.yahoo.com/dotnet/howto-rest_cs.html
REST:表象化状态转变(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。其基本思想是通过HTTP协议提供的方法(GET、POST、PUT和DELETE)访问URI资源,服务器端通过识别URI和具体的HTTP来完成功能。REST风格的Web Service在系统交互中使用的是标准的HTTP内容,相对于XML-RPC使用SOAP对交互内容进行封装的做法显得更简洁。
REST示例:
假设原先有下面一个Web Service接口:
public class OrderService : System.Web.Services.WebService
{
[WebMethod]
[WebService(Description="创建新订单")]
public string NewOrder(string productName, int productCount)
{
//
}
[WebMethod]
[WebService(Description = "获取商户的所有订单")]
public IList<Order> GetOrders(string mercId)
{
//
}
[WebMethod]
[WebService(Description = "获取订单的详细信息")]
public Order GetOrder(string orderId)
{
//
}
}
{
[WebMethod]
[WebService(Description="创建新订单")]
public string NewOrder(string productName, int productCount)
{
//

}
[WebMethod]
[WebService(Description = "获取商户的所有订单")]
public IList<Order> GetOrders(string mercId)
{
//

}
[WebMethod]
[WebService(Description = "获取订单的详细信息")]
public Order GetOrder(string orderId)
{
//

}
}
使用REST风格来实现同样的接口,就需要:
1. 定义URI
http://example.com/order
http://example.com/order/1234
http://example.com/orders/merc12345
2. 通过HttpHander统一处理请求http://example.com/order/1234
http://example.com/orders/merc12345
3. 客户端模拟HTTP请求来调用接口
3.1 获取订单"1234"的详细信息
GET /order/1234 HTTP/1.1
Host: example.com
3.2 获取商户"merc12345"的所有订单Host: example.com
GET /orders/merc12345 HTTP/1.1
Host: example.com
3.3 创建新订单Host: example.com
POST /order HTTP/1.1
Host: example.com
productName=xxx&productCount=10
Host: example.com
productName=xxx&productCount=10
参考文章:
《深入浅出REST》 http://www.infoq.com/cn/articles/rest-introduction
《Make Yahoo! Web Service REST Calls With C#》http://developer.yahoo.com/dotnet/howto-rest_cs.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现