RESTFul API设计指南及使用说明
RESTFul API设计指南及使用说明
一、 协议
API与用户的通信协议,使用HTTP协议。
二、 域名
应尽量将API部署在专用域名之下(http://api.example.com)
也可以将API放在主域名下(http://example.com/api)
三、 版本
应该将API的版本号放入URL(http://example.com/api/v1.0)
四、 路径与映射
REST的关键原则与将你的API分割成逻辑资源紧密相关。使用HTTP请求控制这些资源,
RESTFul原则提供了HTTP methods映射作为策略来处理CRUD actions,
需要继承Resource父类如下:
@API():类注解,括号类为类请求路径,如@API("/api/v1.0")
@GET():方法注解,查询,括号内为方法请求路径,如GET("/user"),如果通过API直接访问,括号可不加
@GET("/:id"):方法注解,根据ID查询,括号内表示可根据ID直接查询结果
@POST():方法注解,新增,括号内为方法请求路径,如果通过API直接访问,括号可不加
@PUT():方法注解,修改,括号内为方法请求路径,如果通过API直接访问,括号可不加
@DELETE():方法注解,删除,括号内为方法请求路径,如果通过API直接访问,括号可不加
五、 资源(Model)常用方法,需要继承Model父类
1:findBy(String where,Object... params):根据条件查询
public List<M> findBy(String username,String password){
Model modelDao = new Model();
List<M> list = modelDao.findBy("username=? AND password=?",username,password);
return list;
}
2:findById(Object id):根据ID查询
public Model findById(Object id){
Model modelDao = new Model();
Model model = modelDao.findById(id);
return model;
}
3: findFirstBy(String where,Object... params):根据条件查询,返回第一条数据
public Model findFirstBy(String username,String password){
Model modelDao = new Model();
Model model = modelDao.findFirstBy("username=? AND password=?",username,password);
return model;
}
4: findAll():查询所有
public List<M> findAll(){
Model modelDao = new Model();
List<M> list = modelDao.findAll();
return list;
}
5:findColsBy(String colums, String where, Object... params):查询相关列信息
public List<M> findColsBy(String username,String password){
Model modelDao = new Model();
List<M> list = modelDao.findColsBy("id,username,password","username=? AND password=?",username,password)
return list;
}
6: save():添加
public boolean save(){
Model model = new Model();
model.set("username","test");
model.set("password","123456");
boolean flag = model.save();
return flag;
}
7:save(Model model):添加
public boolean save(Model model){
Model modelDao = new Model();
boolean flag = modelDao.save(model);
return flag;
}
8:save(List<M> list):批量添加
public boolean save(List<M> list){
Model modelDao = new Model();
boolean flag = modelDao.save(list);
return flag;
}
9:update():更新
public boolean update(){
Model model = new Model();
model.set("id",1);
model.set("username","test");
model.set("password","123456");
boolean flag = model.update();
return flag;
}
10:update(String sql,Object... params):更新或删除 sql为更新语句时更新,为删除语句时删除
public boolean update(String username,String password,int id){
Model modelDao = new Model();
String sql = "update user set username=?,password=? where id=?";
boolean flag = modelDao.update(sql,username,password,id);
return flag;
}
11:delete():删除
public boolean delete(){
Model model = new Model();
model.set("id",1);
boolean flag = model.delete();
return flag;
}
12:deleteBy(String where,Object... params):根据条件删除
public boolean deleteBy(String username,String password){
Model modelDao = new Model();
boolean flag = modelDao.deleteBy("username=? AND password=?",username,password);
return flag;
}
13:deleteById(Object id):根据ID删除
public boolean deleteById(int id){
Model modelDao = new Model();
boolean flag = modelDao.deleteById(id);
return flag;
}
14:fullPaginate(int pageNumber, int pageSize, String sql, Object... params):分页查询
public FullPage<M> fullPaginate(int pageNumber, int pageSize,String username,String password) {
Model modelDao = new Model();
String sql = "select * from user where username=? AND password=?";
FullPage<M> fullPage = modelDao.fullPage(pageNumber,pageSize,sql,username,password);
return fullPage;
}
//注:fullPage.getList()获取查询结果 fullPage.getTotalRow()获取总条数
RESTFul API设计指南及使用说明的更多相关文章
- RESTful API 设计指南 (转)
RESTful API 设计指南 2016-02-23 ImportNew (点击上方公号,可快速关注) 作者:阮一峰 链接:http://www.ruanyifeng.com/blog/2014/0 ...
- RESTful API 设计指南,RESTful API 设计最佳实践
RESTful API 设计指南,RESTful API 设计最佳实践 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). ...
- Rest Framework简介 和 RESTful API 设计指南
使用Django Rest Framework之前我们要先知道,它是什么,能干什么用? Django Rest Framework 是一个强大且灵活的工具包,用以构建Web API 为什么要使用Res ...
- 理解RESTful架构——Restful API设计指南
理解RESTful架构 Restful API设计指南 理解RESTful架构 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式 ...
- (转载) RESTful API 设计指南
作者: 阮一峰 日期: 2014年5月22日 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制 ...
- RESTful API 设计指南
转自:http://www.ruanyifeng.com/blog/2014/05/restful_api.html 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机. ...
- RESTful API设计指南
网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致AP ...
- RESTful API 设计指南【转】
网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致AP ...
- ***RESTful API 设计指南(阮一峰)
网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致AP ...
随机推荐
- ucos-ii的任务调度机制
1.在ucos-ii中,有这么几张表来管理任务. A.OSTCBPrioTbl[],其结构为OS_TCB指针的数组,其元素个数为64, 每一个元素对应一个任务的优先级,ucos-ii最多可以有64个任 ...
- 如何修改64位Eclipse中的代码字体大小
1.双击打开Eclipse,如下图所示: 2.找到菜单栏中的Window,单击它,选择Preferences 3.在左侧的树形菜单中找到General--->Appearance--->C ...
- HTML5图片居中的问题
刚开始接触html5,准备写一些网页,但是学习的过程中遇到了图片不能居中的问题,首先来看看,代码和执行效果: <!DOCTYPE html> <html> <head&g ...
- CF Educational Round 23 F.MEX Queries
写了3小时 = =.这两天堕落了,昨天也刷了一晚上hihocoder比赛,还爆了零.之后得节制点了,好好准备考研.. 首先很容易想到 压缩数据 + 线段树 然后对于Pushdown真很难写..需要牵涉 ...
- Ubuntu 14.04 鼠标消失解决方案
Ubuntu 14.04 鼠标消失解决方案: 进入文字命令行模式,输入startx, 返回图像模式.
- each遍历的用法
- 省市区/国籍 多级联动-jq
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- About Windows 10 SDK Preview Build 17110
在 Windows Developer Day 活动同时,微软正式 Release 了 Windows 10 SDK Preview Build 17110. Windows 10 SDK Previ ...
- 在Vue.js2.0中组件模板子元素数量问题
在Vue中当利用组件进行开发时候,组件所使用的模板只可以应用于一个根实例,当你需要添加多个子元素的时候,可以用一个div将它们包裹起来,代码如下: <template id="task ...
- video常用功能
本文的目录: 1.获取影片总时长2.播放.暂停3.获取影片已播放时间和设置播放点4.音量的获取和设置 第一.获取影片总时长 对播放器(video)操作,首先要得到的是影片的一些信息,其中一个就是总时长 ...