RESTFul API設計指南及使用說明,restfulapi

來源:互聯網
上載者:User

RESTFul API設計指南及使用說明,restfulapi
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):根據條件查詢

1 public List<M> findBy(String username,String password){2 Model modelDao = new Model();3 List<M> list = modelDao.findBy("username=? AND password=?",username,password);4 return list;5 }


2:findById(Object id):根據ID查詢

1 public Model findById(Object id){2 Model modelDao = new Model();3 Model model = modelDao.findById(id);4 return model;5 }


3: findFirstBy(String where,Object... params):根據條件查詢,返回第一條資料

1 public Model findFirstBy(String username,String password){2 Model modelDao = new Model();3 Model model = modelDao.findFirstBy("username=? AND password=?",username,password);4 return model;5 }


4: findAll():查詢所有

1 public List<M> findAll(){2 Model modelDao = new Model();3 List<M> list = modelDao.findAll();4 return list;5 }


5:findColsBy(String colums, String where, Object... params):查詢相關列資訊

1 public List<M> findColsBy(String username,String password){2 Model modelDao = new Model();3 List<M> list = modelDao.findColsBy("id,username,password","username=? AND password=?",username,password)4 return list;5 }


6: save():添加

1 public boolean save(){2 Model model = new Model();3 model.set("username","test");4 model.set("password","123456");5 boolean flag = model.save();6 return flag;7 }


7:save(Model model):添加

1 public boolean save(Model model){2 Model modelDao = new Model();3 boolean flag = modelDao.save(model);4 return flag;5 }

 

8:save(List<M> list):大量新增

1 public boolean save(List<M> list){2 Model modelDao = new Model();3 boolean flag = modelDao.save(list);4 return flag;5 }


9:update():更新

1 public boolean update(){2 Model model = new Model();3 model.set("id",1);4 model.set("username","test");5 model.set("password","123456");6 boolean flag = model.update();7 return flag;8 }


10:update(String sql,Object... params):更新或刪除 sql為更新語句時更新,為刪除語句時刪除

1 public boolean update(String username,String password,int id){2 Model modelDao = new Model();3 String sql = "update user set username=?,password=? where id=?";4 boolean flag = modelDao.update(sql,username,password,id);5 return flag;6 }


11:delete():刪除

1 public boolean delete(){2 Model model = new Model();3 model.set("id",1);4 boolean flag = model.delete();5 return flag;6 }


12:deleteBy(String where,Object... params):根據條件刪除

1 public boolean deleteBy(String username,String password){2 Model modelDao = new Model();3 boolean flag = modelDao.deleteBy("username=? AND password=?",username,password);4 return flag;5 }


13:deleteById(Object id):根據ID刪除

1 public boolean deleteById(int id){2 Model modelDao = new Model();3 boolean flag = modelDao.deleteById(id);4 return flag;5 }


14:fullPaginate(int pageNumber, int pageSize, String sql, Object... params):分頁查詢

1 public FullPage<M> fullPaginate(int pageNumber, int pageSize,String username,String password) {2 Model modelDao = new Model();3 String sql = "select * from user where username=? AND password=?";4 FullPage<M> fullPage = modelDao.fullPage(pageNumber,pageSize,sql,username,password);5 return fullPage;6 }

//註:fullPage.getList()擷取查詢結果 fullPage.getTotalRow()擷取總條數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.