java rest webapi_WebApi系列~基于RESTful标准的Web Api

微软的web api是在vs2012上的mvc4项目绑定发行的,它提出的web api是完全基于RESTful标准的,完全不同于之前的(同是SOAP协议的)wcf和webService,它是简单,代码可读性强的,上手快的,如果要拿它和web服务相比,我会说,它的接口更标准,更清晰,没有混乱的方法名称,有的只有几种标准的请求,如get,post,put,delete等,它们分别对应的几个操作,下面讲一下:

GET:生到数据列表(默认),或者得到一条实体数据

POST:添加服务端添加一条记录,记录实体为Form对象

PUT:添加或修改服务端的一条记录,记录实体的Form对象,记录主键以GET方式进行传输

DELETE:删除 服务端的一条记录

注意上面公开的API接口都是在XMLHttpRequest情况下调用的,当然你可以使用jquery的ajax组件来完成这个请求调用,它的代码更加面向对象,下面举例说明一下

这是页面的HTML代码部分,实现最基本的CRUD操作

测试Web Api

添加(post)

更新(put)

删除(delete)

列表(Get)

实体(Get)

functionadd() {

$.ajax({

url :"/api/Test/",

type :"POST",

data :{"UserID":4,"UserName":"test","UserEmail":"Parry@cnblogs.com"},

success:function(data) { alert(JSON.stringify(data)); }

});

}//更新

functionupdate(id) {

$.ajax({

url :"/api/Test?id="+id,

type :"Put",

data :{"UserID":1,"UserName":"moditest","UserEmail":"Parry@cnblogs.com"},

success:function(data) { alert(JSON.stringify(data)); }

});

}functiondeletes(id) {

$.ajax({

url :"/api/Test/1",

type :"DELETE",

success:function(data) { alert(data);}

});

}

下面是ApiController部分的代码:

///

/// Test模块API

/// URI:/Api/Test

///

public class TestController : ApiController

{///

/// User Data List

///

private readonly List _userList = new List{new Users {UserID = 1, UserName = "zzl", UserEmail = "bfyxzls@sina.com"},new Users {UserID = 2, UserName = "Spiderman", UserEmail = "Spiderman@cnblogs.com"},new Users {UserID = 3, UserName = "Batman", UserEmail = "Batman@cnblogs.com"}

};///

/// 得到列表对象

///

///

public IEnumerableGet()

{return_userList;

}///

/// 得到一个实体,根据主键

///

///

///

public Users Get(intid)

{return _userList.FirstOrDefault(i => i.UserID ==id);

}///

/// 添加

///

/// 表单对象,它是唯一的

///

public Users Post([FromBody] Users entity)

{

_userList.Add(entity);returnentity;

}///

/// 更新

///

/// 主键

/// 表单对象,它是唯一的

///

public Users Put(intid, [FromBody]Users entity)

{var user = _userList.FirstOrDefault(i => i.UserID ==id);if (user != null)

{

user.UserName=entity.UserName;

user.UserEmail=entity.UserEmail;

}returnuser;

}///

/// 删除

///

/// 主键

///

public void Delete(intid)

{

_userList.Remove(_userList.FirstOrDefault(i=>i.UserID==id));

}

}

下面我们看一下各个操作调用的结果:

添加操作(POST)

n2xdTFAX8g7iuRvZTHwfS33d6B7IdtbLLc3+nMUwHfn3waaRBYDi5DFk8hiYBGyeBJZDCxCFk8ii4FFnLL4519KFgNfw8s3MGN3yWJgEdE5+RFm7C5ZDBBPFgPEk8UA8WQxQDxZDBBPFgPEk8UA8WQxQDxZDBBPFgPEk8UA8WQxQDxZDBBPFgPEk8UA8f4DcMWhEPYaNTcAAAAASUVORK5CYII=

JaZ2jn+DfQOvAOACA+8A4AIDbwDgAgNvAOACA28A4AIDbwDgAgNvAOACA28A4AIDbwDgAgNvAOACA28A4AIDbwDgAgNvAOACA28A4AIDbwDgAgNvAOACA28A4AIDbwDgAgNvAOACA2470DAADV8v+8kYnaENl1AgAAAABJRU5ErkJggg==

更新操作(PUT)

AAAAAElFTkSuQmCC

P4UpQFzX82q7AAAAAElFTkSuQmCC

最后,再强调一下,web api使用RESTful架构的,不像传统的(同是SOAP的) RPC方式的wcf和web Service,它强调的是接口模块的概念,每个模块都是独立的,每个模块的接口方法都是统一的和单一的,即CRUD方法组成。

感谢您的阅读!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值