RESTful架构中的webapi

RESTful架构中的webapi,第1张

通过webAPI在server端开发一个借口,在client端调用此借口的完整过程。

(VS2010版本如果包括MVC4也可以创建webAPI,或者vs2012及以上版本)

运行环境:VS2017

开发语言:c#

一、server端

1.创建webapi项目,打开vs2017-文件-新建-项目。

2.在项目中添加Controllers和Models两个文件夹,分别用于存放控制器类和实体类。

在Controllers文件夹中添加API控制器类。

控制类添加完成后,会自动生成,GET,POST,PUT,DELETE四个方法

通过地址确定方法:

get方式:http://IP地址:端口号/api/控制器名称

post方式:[HttpGet("方法标识名称")] http://IP地址:端口号/api/控制器名称/方法标识名称

添加一个方法,在方法中描述接口需要完成的 *** 作以及返回值。

需要注意事项:

1)传进来参数的数据类型必须与接收的数据类型相同。

二、client端

1.添加控制台应用程序用来测试调用接口是否成功。

2.定义一个方法用来调用接口并返回数据。

3.定义一个restful接口帮助类。

1.创建项目:visual C# —>ASP.NET MVC 4 web应用程序 模板—>web api

2.注册路由:

路由表中的每一个条目都包含一个路由模板。这个Web API默认的路由模版是"api/{controller}/{id}"。在这个模版中,“api”是一个文字式路径片段,而{controller}和{id}则是占位符变量。

当Web API框架接收一个HTTP请求时,它会试图根据路由表中的一个路由模板来匹配其URI。如果无路由匹配,客户端会接收到一个404(未找到)错误。

3.linq to sql连接数据库

1.建立数据库建表

2.在models文件夹里面新建linq to sql类文件

3.工具->连接到数据库

4.将要用的表拖入设计区

5.获取数据库Getway。"linq to sql class"文件名+Datacontext实例化这个对象,数据表就会映射到一个集合属性中,personDataDataContext db = new personDataDataContext()

6.增删改查

增:

public Boolean Post([FromBody]UserInfo userInfo) {

personDataDataContext db = new personDataDataContext()

var s1 = new test2

{

UserName =userInfo.UserName, Id=userInfo.Id, Age=userInfo.Age

}

if (db.test2.SingleOrDefault<test2>(s =>s.Id == userInfo.Id) == null)

{

db.test2.InsertOnSubmit(s1)

db.SubmitChanges()

return true

} else {

return false

}

}

删:

public bool Delete(int id)

{

personDataDataContext db = new personDataDataContext()

var deleteperson = db.test2.SingleOrDefault<test2>(s =>s.Id == id)

if (deleteperson == null)

{

return false

} else {

db.test2.DeleteOnSubmit(deleteperson)

db.SubmitChanges()

return true

}

}

改:

public Boolean Put(int id, [FromBody]UserInfo userInfo)

{

personDataDataContext db = new personDataDataContext()

var editperson = db.test2.SingleOrDefault<test2>(s =>s.Id == userInfo.Id)

if (editperson == null)

{

return false

} else {

editperson.Age = userInfo.Age

editperson.UserName = userInfo.UserName

db.SubmitChanges()

return true

}

查:

public IEnumerable<test2>Get()

{

personDataDataContext db = new personDataDataContext()

var query = from s in db.test2

orderby s.UserName

select s

return query

}

// GET api/values/5

public string Get(int id)

{

return "value"

}

这里我新建了一个userinfo类

public class UserInfo { public string UserName { getset} public int Id { getset} public int Age { getset} }

用来接收前端页面ajax请求中的data数据,s =>s.Id == userInfo.Id是lamda表达式创建委托方法意思是在db.test2的person集合中查找某个person的Id与userinfo接收到的id相等的person对象


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11650328.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存