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 ...
随机推荐
- 错误代码: 1052 Column 'stu_id' in field list is ambiguous
1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:select stu_id, (SELECT stu_name FROM t ...
- C++遍历二维数组的四种方法
#include <iostream> using std::cin; using std::cout; using std::endl; using std::string; using ...
- mariadb集群与nginx负载均衡配置--centos7版本
这里配置得是单nginx主机..先准备4台主机,三台mariadb集群,一台nginx. ------------------------------------------------------- ...
- Dynamics 365中审核用户权限变化的一种方法
摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复268或者20180311可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyon ...
- PKUWC2018游记
PKUWC2018游记 Day -inf 从去年的12月底开始停课,到现在也有整整一个月的时间了. 前两周考的是OI赛制,后来就变成了IOI赛制. 整体上考的很炸,虐场的次数远少于被虐的次数. 关于去 ...
- canvas练手项目(一)——选取图片
今天无事可做,在春意盎然的下午突发奇想想做一个关于图片处理的在线网页应用.不要问我为什么做这个,因为我想做!关于这个项目,我想基于canvas来实现,canvas是个好东西,我一直很喜欢,就是我没有做 ...
- ls-grep-find组合命令解决企业问题实战
ls -l|grep “^d” 以d开头 ls -lF 给不同文件类型加不同标志 ls -lF|grep “/$” 以/结尾 ls -lF|grep / find ./ -type d fin ...
- JDK源码及其他框架源码解析随笔地址导航
置顶一篇文章,主要是整理一下写过的JDK中各个类的源码及其他框架源码解析的文章,方便自己随时阅读也方便网友朋友们阅读与指正 基础篇 从为什么String=String谈到StringBuilder和S ...
- 【noip模拟】Fantasia
Time Litmit: 1000ms Memory Limit: 256MB Description 给定一张 $N$ 个点.$M$ 条边的无向图 $G$ .每个点有个权值$W_i$. 我 ...
- Listener监听器生命周期
一.Listener生命周期 listener是web三大组件之一,是servlet监听器,用来监听请求,监听服务端的操作. listener分为:(都是接口类,必须实现相应方法) 1.生命周期监听器 ...