`

spring rest

 
阅读更多

一、Rest的基本原理 (表述性状态转移) rest 与 rpc没有任何关系。RPC是面向服务的,并关注于行为和动作,而REST是面向资源的。

1: 表述性,资源实际上可以用各种形式来进行表述。xml,json,html

2:    状态当使用REST的时候,我们更关注资源的状态

3: REST涉及转移资源数据,它以表述性形式从一个应用转移到了一个应用

 

总结:rest就是将资源的状态以最合适的形式从服务器端转移到客户端。

 

二、spring 如何支持rest : 

1、控制器可以处理所有的http 方法 , get、put、delete、post 

2、新的pathvariable 注解使得控制器能处理参数化的URL

3、spring的表单绑定jsp标签库的<form:form>标签以及新的HiddenHttpMethondFilter, 使得通过html表单提交put 和 delete 请求成为可能。

4、通过使用spring的视图和视图解析器,资源可以以各种形式进行表述。xml,json,atom和rss

5、可以使用新的contentnegotiatingviewresolver 来选择最合适客户端

6、基于视图的渲染可以使用@responsebody注解

7、新的@responsebody注解以及httpmethodconverter实现可以传入http数据转化为控制器处理方法

8、resttemplate简化了客户端对rest资源的使用。

 

restful 和 restless 的url 和 控制器

rest less 的 url 和 控制器

1、restless的url : http://localhost:8080/Spitter/displaySpittle.htm?id=123

 

2、

@Controller

@RequestMapping(“/displaySpitle.html”)

public class DisplaySpittleController {

    private final SpitterService spitterService ;

     @Inject

      public DisplaySpittleController(SpitterService spitterService){

           this. spitterService = spitterService

      }

      

      @RequestMapping(method = RequestMethod.GET)

      public string show spittle(@RequestParam(“id”) long id , Model model)

      {

            model.addAttribute(spitterService.getSpittleByid(id))

            return  “spitter/view”

       }

}

 

restful的url和 控制器

1、http://localhost:8080/Spitter/spittles/123

 

2、

@Controller

@RequestMapping(“/spittles”)

public class SpittleController {

    private SpitterService spitterService;

    

    @Inject

    public SpittleController(SpitterService spitterService){

        this.spitterService = spitterService;

    }

    

    @RequestMapping(value = “/{id}” method = RequestMethod.GET)

     public String getSpittle(@PathVariable(“id”) long id , Model model){

            model.addAttribute(spitterService.getSpittleById(id));

            return “spittles/view”

     }

}

 

rest 动作

1、对于任意i给定的资源,最常见的操作是在服务器上对资源进行创建,索引,更新,删除

2、每个http方法具有两个特性,安全性和幂等性。 

3、http提供了多个方法来操作资源

安全: 不改变资源状态

幂等: 一次请求和多次请求具有相同的作用

 

GET方法:  执行读取操作。是安全,是幂等。

POST方法:通常用于更新和创建操作。不安全,不幂等。

PUT方法:  通常用于更新和创建操作。不安全,幂等

DELELE方法: 删除操作,不安全,幂等

OPTIONS方法: 请求与服务器通信可用的选项,是安全,是幂等

HEAD方法: 类似GET,只返回头部信息 是安全,是幂等

TRACE 方法: 将请求体的内容  是安全,是幂等

 

4、使用PUT更新资源

get 请求将资源的状态从服务器转移到客户端,而put将资源的状态从客户端转移到服务器上。

 

@RequestMapping(value="/{id}",method=RequestMethod.PUT)

@ResponseStatus(HttpStatus.NO_CONTENT)

public void putSpittle(@PathVariable("id") long id , @Valid Spittle spittle){

             spitterService.saveSpittle(spittle);

 

5、处理Delete请求: RequestMethod.delete

 

6、使用post创建资源 :   可以完成其他http方法无法完成的工作

方法的requestmapping没有value的时候,匹配类的value

@RequestMapping(method = RequestMethod.POST)

@ResponseStatus(HttpStatus.CREATED)

public @ResponseBody Spittle createSpittle(@Valid Spittle spittle,BindingResult result,HttpServleResponse response){

         if(result.hasErrors()){

              throw new BindException();

         }

         

         spitterService.saveSpittle(spittle);

         response.setHeader("Location"," /spittles/" + spittle.getId()+"");

         return spittle

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Spring REST Docs API(Spring REST Docs 开发文档).CHM

    Spring REST Docs。 官网 Spring REST Docs API。 Spring REST Docs 开发文档。

    spring rest 增删改查(put\delete\post\get)简单示例详细讲解

    spring rest 增删改查(put\delete\post\get)简单示例详细讲解,亲测可用。spring rest 增删改查(put\delete\post\get)简单示例详细讲解,亲测可用。spring rest 增删改查(put\delete\post\get)简单示例详细...

    Spring REST

    Spring REST是使用Spring框架设计和开发RESTful API的实用指南。本书通过深入探索REST应用设计原则和最佳实践,引导读者学习构建REST应用的整个过程。本书首先提供REST、HTTP和Web基础设施的简要介绍,然后详细介绍...

    spring rest doc 例子

    spring rest doc 例子,根据里面的例子,配合你的项目我相信能很快就用的上哦。尝试着用用吧。 spring rest doc 例子,根据里面的例子,配合你的项目我相信能很快就用的上哦。尝试着用用吧。

    jersey+spring rest webservice web maven

    标题中的"jersey+spring rest webservice web maven"是一个基于Java开发的RESTful Web服务架构,它结合了几个关键的技术组件。让我们深入探讨每个部分: 1. **Jersey**: Jersey是Java RESTful Web服务(JAX-RS)...

    spring rest mvc使用RestTemplate调用

    `RestTemplate`是Spring提供的一种简单易用的HTTP客户端工具,用于发起HTTP请求并与REST服务进行交互。本文将深入探讨`RestTemplate`的使用方法,以及如何在实际项目中有效地利用它。 首先,`RestTemplate`是Spring...

    spring-rest-2-ts:spring rest 2 ts是Typescript生成器,它基于Spring MVC注释在Typescript中生成数据模型和服务。 它支持Angular和React的生成

    Spring Rest2ts生成器 spring-rest2ts-generator基于Spring MVC REST控制器和HTTP请求和响应的数据模型生成TypeScript代码。 spring-rest2ts-generator从Spring MVC开始,但是我们注意到它也很容易支持JAX-RS注释,...

    restdocs-spec:一个使用Spring Restdocs生成Open API和Postman Collection规范的maven插件

    Restdocs规范生成支持用法首先转到项目,然后按照说明设置Spring REST Docs扩展。 该扩展名将为您记录的每个resource.json生成resource.json文件。 您还将注意到,该项目提供了gradle插件,可用于读取所有resource....

    Spring3.0 rest 实例

    **Spring 3.0 REST 实例详解** 在现代Web开发中,REST(Representational State Transfer,表述性状态转移)已经成为构建API的首选架构风格。Spring框架,作为一个强大的Java企业级应用开发框架,从3.0版本开始就...

    springrest-book:Spring REST 书籍源代码

    “Spring REST Book”的源代码,Apress Publishing 概述 此存储库包含 [Spring REST] ( ) 书中引用的源代码。 组织 源代码由各个章节组织。 在 ChapterX 文件夹中可以找到与每个章节对应的代码,其中 X 代表章节编号...

    Building a Rest API with Spring

    本文主要介绍了使用Spring框架构建REST API的全过程,内容包括了从基础的Spring Web应用搭建,到使用Java配置,再到通过Spring Security进行安全认证和授权,以及REST API的其他重要特性,例如:使用HTTP消息转换器...

    SpringRest:带有AngularJS前端的Spring REST后端

    该示例项目将使用Spring REST后端和AngularJS前端。 问题描述-多个用户登录系统。 它们具有通知窗口(消息控制台)。 基于事件,将根据业务逻辑从后端创建JMS消息并将其发布到Queue或Topic。 有些事件必须传递到用户...

    spring mvc rest基础学习demo

    在"spring mvc rest基础学习demo"中,我们将深入探讨如何使用Spring MVC构建RESTful API。 REST(Representational State Transfer,表现层状态转移)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,以...

    spring-rest-template:用于创建Spring Rest Web服务的样板项目

    用于创建Spring Rest Web服务的样板项目(Java注释)。 该项目包含开发基于Spring的Rest Web服务的所有基本要求。 这项工作正在进行中,我将继续使用其他功能(例如缓存,安全性,身份验证/授权等)来更新项目。

    spring mvc rest 小例子

    在这个小例子中,我们将探讨如何使用Spring MVC来实现REST接口。 首先,让我们理解Spring MVC的基本架构。Spring MVC通过DispatcherServlet作为前端控制器,接收HTTP请求,然后根据请求映射找到相应的Controller...

    spring-auto-restdocs:Spring Auto REST文档是Spring REST文档的扩展

    Spring Auto REST文件 扩展的目的是帮助您减少编写工作-代码和文档。 您仍然可以获得与Spring REST Docs本身相同的文档。 主要好处是减少了编写并使文档更接近代码,从而提高了文档的可维护性。 在Spring REST ...

    使用Spring MVC创建REST服务简单例子

    本教程将通过一个简单的例子,讲解如何利用Spring MVC创建REST服务。 首先,我们需要在项目中引入Spring MVC的相关依赖。通常,这涉及到在Maven或Gradle的配置文件中添加Spring Web和Spring MVC的依赖。例如,如果...

Global site tag (gtag.js) - Google Analytics