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设计指南及使用说明的更多相关文章

  1. RESTful API 设计指南 (转)

    RESTful API 设计指南 2016-02-23 ImportNew (点击上方公号,可快速关注) 作者:阮一峰 链接:http://www.ruanyifeng.com/blog/2014/0 ...

  2. RESTful API 设计指南,RESTful API 设计最佳实践

    RESTful API 设计指南,RESTful API 设计最佳实践 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). ...

  3. Rest Framework简介 和 RESTful API 设计指南

    使用Django Rest Framework之前我们要先知道,它是什么,能干什么用? Django Rest Framework 是一个强大且灵活的工具包,用以构建Web API 为什么要使用Res ...

  4. 理解RESTful架构——Restful API设计指南

    理解RESTful架构 Restful API设计指南 理解RESTful架构 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式 ...

  5. (转载) RESTful API 设计指南

    作者: 阮一峰 日期: 2014年5月22日 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制 ...

  6. RESTful API 设计指南

    转自:http://www.ruanyifeng.com/blog/2014/05/restful_api.html 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机. ...

  7. RESTful API设计指南

    网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致AP ...

  8. RESTful API 设计指南【转】

    网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致AP ...

  9. ***RESTful API 设计指南(阮一峰)

    网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致AP ...

随机推荐

  1. JavaScript去除日期中的“-”

    JavaScript去除日期中的"-" 1.说明 经常会出现这样的情况,页面的日期格式是:YYYY-MM-DD,而数据库中的日期格式是:YYYYMMDD,两者之间需要转换一下,方能 ...

  2. “var arr = []; ”和 “var arr = {};” 的区别

    1.面试题    var arr = [];    var arr = {};    比较上述代码有什么区别? 2.解析    var arr = [];是一个数组对象    var arr = {} ...

  3. RobotFramework自动化测试框架的基础关键字(一)

    1.1.1        如何搜索RobotFramework的关键字 有两种方式可以快速的打开RIDE的关键字搜索对话框 1.选择菜单栏Tools->Search Keywords,然后会出现 ...

  4. 自己写的,然后配合zepto+iscroll的上拉加载

    /** * Created by jl on 2016/3/28. *///初始化绑定iScroll控件var actHtml="";var myScroll,    pullUp ...

  5. 【BZOJ4071】八邻旁之桥(线段树)

    [BZOJ4071]八邻旁之桥(线段树) 题面 BZOJ权限题,洛谷链接 题解 既然\(k<=2\) 那么,突破口就在这里 分类讨论 ①\(k=1\) 这...不就是中位数吗.... 直接把所有 ...

  6. 【BZOJ4195】【NOI2015】程序自动分析(并查集)

    [BZOJ4195][NOI2015]程序自动分析(并查集) 题面 Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设 ...

  7. 【NOIP2015】斗地主(搜索,贪心)

    题面戳我 题解 我原来也觉得是一道不可做的难题.. 其实,,,很简单的啦... 对于当前状态 我们出牌的方式大致分为两类 一类是不用考虑点数的,包括单张,对子,三带一等 另一类就是需要考虑点数的,包括 ...

  8. 【Spring源码分析】原型Bean实例化过程、byName与byType及FactoryBean获取Bean源码实现

    原型Bean加载过程 之前的文章,分析了非懒加载的单例Bean整个加载过程,除了非懒加载的单例Bean之外,Spring中还有一种Bean就是原型(Prototype)的Bean,看一下定义方式: & ...

  9. 关系型数据库工作原理-事务管理(一)(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

  10. wcf类库及宿主

    说起wcf,一直以来总是直接创建wpf的应用程序,这样默认的宿主是IIS.如果想更换宿主,那么我们首先得创建wcf类库. 这个类库会自动创建一个app.config文件.到最后部署的时候,把它移到宿主 ...