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. python空字典列表两种生成方式对赋值带来的不同影响

    最近在实现朴素贝叶斯算法碰到一个很有趣的现象(基于Python3.6.3) 我生成一个由10个空字典构成的列表: 第一种生成方式(可能大多数人都会用这种方法,形式简单) >>a = [{} ...

  2. 【原】Java学习笔记026 - 集合

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中 ...

  3. OpenStack_I版 6.Neutron部署

    Neutron是不能自己创建网络的,它需要借助插件才能创建虚拟网桥.网卡 依赖插件 配置ml2为核心插件 本次网络模型采用扁平化网络,不同的网络类型不同的配置,不同的使用方法 打开安全组功能 Linu ...

  4. CentOS中配置NFS服务

    1.服务器端安装rpcbind.nfs-utils.nfs-server包 yum install nfs-utils -y 2.修改服务器端配置文件,添加需要共享的文件夹. vim /etc/exp ...

  5. jQuery UI Autocomplete Combobox 配 ASP.NET DropDownList

    0.引言   1.起因                  一开始使用Autocomplete做了一个自动补全的文本框,如上图.后来因业务需要希望能在这个文本框的边上做个下拉列表按钮,一按就展开所有支持 ...

  6. 第一篇:操纵MySQL数据库(1) - 基于MySQLdb库

    前言 本文讲解在Python语言中使用MySQLdb库操纵MySQL数据库的方法. 准备工作 1. 安装Python和MySQL2. 安装MySQLdb (exe下载地址:http://sourcef ...

  7. 【BZOJ1500】【NOI2005】维修数列(Splay)

    [BZOJ1500][NOI2005]维修数列(Splay) 题面 不想再看见这种毒瘤题,自己去BZOJ看 题解 Splay良心模板题 真的很简单 我一言不发 #include<iostream ...

  8. 【HDU1711】Number Sequence

    题面 大致题意: 给定两个数列A,B,长度分别为N和M 求出 满足 Ak=B1 ,Ak+1=B2......Ak+M-1=Bm 的最小k值 如果有多个k值输出最小的一个 题解 KMP裸题 直接计算B数 ...

  9. Vue-小demo、小效果 合集(更新中...)

    (腾讯课堂学习小demo:https://ke.qq.com/course/256052) 一.简单的指令应用 --打击灭火器 图片素材点击腾讯课堂的链接获取       html: <!DOC ...

  10. repo 和git的用法

    1. 服务器版本下载: repo init -u git@192.168.1.11:i700t_60501010/platform/manifest.git-b froyo_almond -m M76 ...