你知道什么是 Restful 风格吗?SpringMVC 带我们实现它!
2021-03-10 14:31
标签:java date load error leo 前端开发 轻量 nta 条件 在 Restful 风格中,用户请求的 url 使用同一个 url 而用请求方式:get,post,delete,put...等方式对请求的处理方法进行区分,这样可以在前后台分离式的开发中使得前端开发人员不会对请求的资源地址产生混淆和大量的检查方法名的麻烦,形成一个统一的接口。 SpringMVC 的 resturl 是通过 @RequestMapping 及 @PathVariable annotation 提供的,通过如 @RequestMapping(value="/blog /{id}",method=RequestMethod.DELETE) 即可处理 /blog/1 的 delete 请求。 REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,Roy Fielding是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。 REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。 你知道什么是 Restful 风格吗?SpringMVC 带我们实现它! 标签:java date load error leo 前端开发 轻量 nta 条件 原文地址:https://blog.51cto.com/15056777/2565959SpringMVC Restful 风格 url 配置实现的方式
案例实操
Get 请求配置
/**
*restful-->get 请求 执行查询操作
* @param id
* @return
*/
@RequestMapping(value="queryAccountById02/{id}",method=RequestMethod.GET,produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public MessageModel queryAccountById(@PathVariable Integer id){
MessageModel messageModel=new MessageModel();
if(null==id){
messageModel.setCode(300);
messageModel.setMsg("参数非法!");
return messageModel;
}
messageModel.setResult(accountService.queryById(id));
return messageModel;
}
Post 请求配置
/**
* restful-->post 请求执行添加操作
* @param id
* @param aname
* @return
*/
@RequestMapping(value="saveAccount",method=RequestMethod.POST,produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public MessageModel queryAccountById04(@RequestBody Account account){
MessageModel messageModel=new MessageModel();
try {
accountService.saveOrUpdateAccount(account);
} catch (ParamsException e) { e.printStackTrace();
messageModel.setCode(e.getErrorCode());
messageModel.setMsg(e.getErrorMsg());
}catch (Exception e) { e.printStackTrace();
messageModel.setCode(300);
messageModel.setMsg("操作失败!");
}
return messageModel;
}
Put 请求配置
/**
* restful-->put 请求执行更新操作
* @param id
* @param account
* @return
*/
@RequestMapping(value="update/{id}",method=RequestMethod.PUT,produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public MessageModel queryAccountById04(@PathVariable Integer id,@RequestBody Account account){
MessageModel messageModel=new MessageModel();
try {
accountService.saveOrUpdateAccount(account);
} catch (ParamsException e) { e.printStackTrace();
messageModel.setCode(e.getErrorCode());
messageModel.setMsg(e.getErrorMsg());
}catch (Exception e) { e.printStackTrace();
messageModel.setCode(300);
messageModel.setMsg("操作失败!");
}
return messageModel;
}
Delete 请求配置
/**
* restful-->delete 请求 执行删除操作
* @param id
* @return
*/
@RequestMapping(value="deleteAccountById/{id}",method=RequestMethod.DELETE,produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public MessageModel queryAccountById05(@PathVariable Integer id){
MessageModel messageModel=new MessageModel();
try {
accountService.deleteAccountById(id);
} catch (ParamsException e) { e.printStackTrace();
messageModel.setCode(e.getErrorCode());
messageModel.setMsg(e.getErrorMsg());
}catch (Exception e) { e.printStackTrace();
messageModel.setCode(300);
messageModel.setMsg("操作失败!");
}
return messageModel;
}
扩展~REST
上一篇:19-Java中的File类
文章标题:你知道什么是 Restful 风格吗?SpringMVC 带我们实现它!
文章链接:http://soscw.com/index.php/essay/62807.html