如何使用asp.net Web API开发RESTfull Web服务

时间:2012-07-24 07:52:22

标签: asp.net asp.net-web-api

我已经阅读过asp.net Web API,但我不确定我是否理解Web API工具背后的概念。现在让我说我已经定义了一个从APIController派生的Controller,我可以使用URL调用这个Controller,然后Controller将JSON结果返回给客户端,,,

这是否意味着我的asp.net MVC Web应用程序中的APIController是作为RESTfull Web服务公开的? BR

3 个答案:

答案 0 :(得分:2)

您的API是否被视为“RESTfull”是一个设计问题,而不是使用哪个库/项目模板的问题。请记住,API的重点是暴露一个简单的编程接口 - 在幕后实现它的方式在这方面并不重要。

然而,由于其内置的设计原则,WebAPI项目模板确实非常适合设计restfull服务。

REST API背后的基本思想是:

  • 使用HTTP协议(WebAPI执行,因此请检查)
  • 公开一个简单的API来处理数据,通常使用与数据处理相关的POST / GET / PUT / DELETE方法(这就是WebAPI设计适合自己的方法)。
  • 以可互操作的格式传输数据(JSON,XML,在WebAPI中也很容易实现)

与使用基本MVC控制器/动作设计REST API没什么不同,WebAPI只是让它更容易。

这是一个不错的视频系列:http://www.asp.net/web-api/videos/getting-started/your-first-web-api

答案 1 :(得分:1)

我只想添加到Anders

REST代表Representational state transfer
所以基本上在建筑学中你选择了resource http://www.example.com/USER 并指示服务器对资源执行操作。由发送的HTTP请求类型指定 通过什么web api开箱即用 POST - 添加新用户
PUT - 修改现有用户信息
GET - 只需检索用户信息
DELETE - 删除用户信息
这是REST

正在发送或接收的数据类型(JSONXML)。不是休息规格的一部分。你也可以决定使用asp.net web api数据返回并以什么格式发送 您的请求的AcceptContent-Type标题

答案 2 :(得分:0)

Apixtroller与mvc Controller完全不同,它来自Wcf WebApi,但与开发人员的经典asp.net控制器非常相似。重点是加快提供休息服务。

所以你只需要再分配一个路径,制作一些控制器,而不是使用querystring和body json(默认)并自动转换为Poco类,并返回另一个自动序列化为jsion的Poco类。