zoukankan      html  css  js  c++  java
  • restful

    restful 大概: 

    http://www.ruanyifeng.com/blog/2011/09/restful.html

    http://www.ibm.com/developerworks/cn/web/wa-spring3webserv/index.html

    过 REST 风格体系架构,请求和响应都是基于资源表示的传输来构建的。资源是通过全局 ID 来标识的,这些 ID 一般使用的是一个统一资源标识符(URI)。
    客户端应用使用 HTTP 方法(如,GET、POST、PUT 或 DELETE)来操作一个或多个资源。
    通常,GET 是用于获取或列出一个或多个资源,POST 用于创建,PUT 用于更新或替换,而 DELETE 则用于删除资源。

    Spring REST 支持的主要特性包括:

    • 注释,如 @RequestMapping@PathVariable,支持资源标识和 URL 映射
    • ContentNegotiatingViewResolver 支持为不同的 MIME/内容类型使用不同的表示方式
    • 使用相似的编程模型无缝地整合到原始的 MVC 层

    @RequestMapping(value = "/{username}", method = RequestMethod.GET, headers = {"Accept=text/xml, application/json"})
            public @ResponseBody
            Spitter getSpitter(@PathVariable String username) {
    
              return spitterService.getSpitter(username);
            }
    

    ContentNegotiatingViewResolver 先检查url,后检查header accept

     

    HTTP message converters :可以将method返回client需要的形式,

    Assuming that the Jackson JSON library is in the appli- cation’s classpath, the object returned from the handler method will be given to the MappingJacksonHttpMessageConverter for conversion into a JSON representation to be returned to the client. On the other hand, if the request header indicates that the client prefers text/xml, then Jaxb2RootElementHttpMessageConverter will be tasked with producing an XML response to the client. 

     

     关于url 解析到view:   http://www.cnblogs.com/zhaoyang/archive/2012/01/07/2315428.html

     

    @RequestBody:发送请求的data

    @RequestMapping(value = "/{username}", method = RequestMethod.PUT,
                    headers = "Content-Type=application/json")
    
    @ResponseStatus(HttpStatus.NO_CONTENT)
    public void updateSpitter(@PathVariable String username,
    
                          @RequestBody Spitter spitter) {
      spitterService.saveSpitter(spitter);
    

    }

    When the request arrives, Spring MVC will see that the updateSpitter() is able to handle the request. But the message arrives as an XML document, and this method asks for a Spitter object. In this case, the MappingJacksonHttpMessageConverter may be chosen to convert the JSON message into a Spitter object. For that to work, the following criteria must be met:

    The request’s Content-Type header must be set to application/json.
    The Jackson JSON library must be available on the application’s classpath. 

  • 相关阅读:
    win11系统无法解决的死结
    python多线程2线程应用
    python多线程3线程同步
    python多线程3.1同步测试例子
    python多线程1线程创建
    最近总是淡淡的····
    ASP.NET MVC 中如何实现基于角色的权限控制
    【转】Visual C++ ADO数据库编程入门
    【转】Windows窗体消息汇总
    【转】数据库设计中的14个技巧
  • 原文地址:https://www.cnblogs.com/zengyou/p/2799687.html
Copyright © 2011-2022 走看看