`
C_LIFE
  • 浏览: 37622 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RESTFUL_规范化开发

 
阅读更多
    当一个理论被提出的时候,一个公司的技术决策层通常需要考虑到这个理论的可行性,然后去验证落地的可能性。
      我们在实施SOA关于接口的过程中,通常有以下流程:定义规范,然后根据规范去生成服务端客户端代码框架,然后部署到OSB或者其他平台上。在这之前,曾经主导设计了一个REST风格的数字售楼系统,用的是SPIRNG MVC,当然前端有多种,flex,jsp,android等等。但是如今看来,那个系统的设计框架虽然考虑到了安全验证,转码,TOKEN授权机制等等,但是如果做多系统集成,那个框架却忽视了一个很重要的东西--规范。因此我们可以采下面这种开发方式。

      一。定义规范,规范的目的就是定义双方交换的数据格式。比如我们定义一个导入数据的规范,ImportAcountInfoSrv.XSD。这个规范里我们定义验证头信息,输入,输出等内容。如下
    
        <import namespace="http://mss.cmcc.com/MsgHeader"   
            schemaLocation="MsgHeader.xsd"/>
        <import namespace="http://mss.cmcc.com/ImportSrvResponse" 
            schemaLocation="ImportSrvResponse.xsd"/>   
        <element name="SB_EMT_EMT_ImportAcountInfoSrvRequest"  
            type="tns:SB_EMT_EMT_ImportAcountInfoSrvRequest"/>
        <element name="SB_EMT_EMT_ImportAcountInfoSrvResponse"  
            type="tns:SB_EMT_EMT_ImportAcountInfoSrvResponse"/>
            .............

   二。生成实体类,用JDK自带工具xjc.bat生成实体对象如下
                SBEMTEMTImportAcountInfoSrvRequest.java
                SBEMTEMTImportAcountInfoSrvResponse.java
                SBEMTEMTImportAcountInfoSrvInputCollection.java
                SBEMTEMTImportAcountInfoSrvInputItem.java
                .....................
  
   三。编写服务端代码 RestController.java
      
                 ..........
                @RequestMapping(method=RequestMethod.POST, 
                                 value="/importaccount")
           public ResponseEntity<String> importAccountSrv(
                                 @RequestBody String body){
                .............
                StringReader reader = new StringReader(body);
           Unmarshaller unmar = context.createUnmarshaller();
           SBEMTEMTImportAcountInfoSrvRequest saisr =    
                            (SBEMTEMTImportAcountInfoSrvRequest)
                   unmar.unmarshal(reader);
                                  ..............

                String res = convertObjToXml(sair);
       HttpHeaders resHeaders = new HttpHeaders();
       resHeaders.setContentType(MediaType.TEXT_PLAIN);
                return new ResponseEntity<String>(res, resHeaders,
                HttpStatus.CREATED);  
            }
        上面的代码关键是JAXB2反解析序列化后字符串,并将数据填充到我们生成的对
           象中。同样在返回SBEMTEMTImportAcountInfoSrvResponse对象实例时候
           ,需要经过JAXB2序列化。

                              .............
                Marshaller marshaller = context.createMarshaller();  
                              ..............
                StringWriter writer = new StringWriter();
                marshaller.marshal(sair, writer);
                String xml = writer.toString();

    四。编写客户端代码 RestClient
                rest.postForObject
         ("http://localhost:8080/SpringRest/service/importaccount", 
                requestStr, String.class);
               其他部分和服务端逆过程即可。
           
           
      
分享到:
评论

相关推荐

    swagger-ui-master.zip_Swagger favicon.ico_restful_restful api_sw

    Swagger是Swagger UI的核心组件,它遵循OpenAPI规范,这个规范是一种标准,用于描述RESTful API的接口,包括端点、参数、响应等。 "favicon.ico"是网站的图标,通常显示在浏览器的地址栏或标签页上,为Swagger UI...

    restful_java_jax-rs_2_0-master 学习restful 必备

    本资料"restful_java_jax-rs_2_0-master"是针对Java开发者学习RESTful服务的一个重要资源,尤其是对于那些想要深入理解JAX-RS 2.0规范的开发者来说,它是必备的学习材料。这个压缩包包含的源代码能够帮助你实践并...

    RESTFUL_JAVA_WEB_SERVICES_THIRD_EDITION.pdf

    2. **Java与REST**:讨论了Java如何支持RESTful服务的实现,包括使用JAX-RS(Java API for RESTful Web Services)规范,如Jersey、RESTEasy和JAX-RS 2.0等框架。 3. **URI设计**:讨论了如何设计清晰、有意义的URI...

    ADAM-3600 RESTful Specification_v1.7.pdf_restful_

    在RESTful规范中,资源是核心概念。在ADAM-3600的场景下,资源可能包括设备状态、传感器读数、配置参数等。每个资源都有一个唯一的URI(统一资源标识符),通过HTTP方法(如GET、POST、PUT、DELETE)进行操作。例如...

    restful 接口开发规范(RESTfulAPIdesignguide)

    在开发RESTful接口时,我们需要遵循一定的设计规范来确保接口的一致性、可维护性和易用性。RESTful API(Representational State Transfer,也称为RESTful web服务)是一种提供互联网计算机系统间互操作性的方法。...

    spring-server-generated.zip_restful_swagger_yaml

    在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建企业级应用程序提供了全面的基础设施。本项目涉及的主题是“spring-server-generated.zip_...这不仅提高了开发效率,也确保了API的规范性和可维护性。

    patch_NC65restful接口_20180629_dingyh5.zip

    使用NC65的RESTful接口与其他Web系统类似,关键在于理解并遵循RESTful接口的规范。首先,你需要了解每个接口的URL路径,这通常包含了资源的唯一标识。然后,根据业务需求选择合适的HTTP方法,如GET用于获取资源,...

    Python语言开发RESTful API指南

    综上所述,Python语言开发RESTful API的核心知识点包括:请求与响应的处理、状态码的返回、序列化和反序列化技术、安全机制如身份验证和权限验证、以及CORS配置和URL规则定义。掌握这些知识点对于设计和实现一个健壮...

    RestFul设计规范指南

    ### RestFul设计规范指南 #### 什么是REST及其发展历程 REST(Representational State Transfer)是一种由Roy Thomas Fielding博士提出的架构风格,最早出现在他在2000年完成的博士论文中。REST并不是一种强制性的...

    nodejs_restful_api:纯节点js API

    10. **文档生成**:Swagger或OpenAPI规范是生成RESTful API文档的常见工具,它们可以帮助开发者自动生成清晰的API文档,便于其他开发者理解和使用。 以上就是基于Node.js和Express构建RESTful API的一些关键知识点...

    Restful 接口规范

    Restful 接口规范是设计 restful API 的指南,旨在提供一个统一的接口设计标准,提高开发效率和系统集成性。 1. 协议约束 Restful API 建议使用 HTTPS 协议,以确保数据传输的安全性。 2. URI 约束 URI(Uniform...

    使用CXF开发RESTFul服务

    【标题】"使用CXF开发RESTFul服务"涉及到的核心技术是Apache CXF框架和RESTful API设计。Apache CXF是一个开源的Java框架,主要用于构建和消费Web服务,包括SOAP和RESTful服务。REST(Representational State ...

    lighttpd restfulapi cgi

    RESTful API设计模式是现代Web服务的重要组成部分,它允许通过HTTP协议以标准化方式交互数据。同时,CGI(Common Gateway Interface)是一种让静态网页服务器执行动态脚本的技术。本文将探讨如何在lighttpd服务器上...

    restful接口示例代码

    RESTful接口的规范性和一致性使其易于理解和使用,对于开发API驱动的应用程序非常有利。它促进了客户端和服务器之间的解耦,允许独立开发和升级。同时,由于RESTful接口广泛被现代浏览器和HTTP客户端支持,因此它们...

    Spring CXF Restful 实例

    10. **异常处理**:通过自定义异常处理器,我们可以规范化REST服务的错误响应,提供统一的错误信息格式。 通过这个“Spring CXF Restful实例”,开发者将学习到如何在Spring环境中使用CXF构建高效、可维护的RESTful...

    基于flask实现RestfulAPi.zip

    可以使用Swagger(OpenAPI规范)生成交互式的API文档,方便开发者理解和使用API。Flask有如flask-swagger等扩展支持OpenAPI。 通过以上步骤,你可以使用Flask构建出一个符合RESTful原则的API服务。在这个“user_...

    Django Restful 框架设计规范 - 英文原文

    ### Django Restful 框架设计规范解析 #### 标题与描述理解 标题:“Django Restful 框架设计规范 - 英文原文”表明了本文档是一份关于如何在Django框架中实现Restful API的设计指南,并且是以英文形式呈现。 ...

    RESTful-API设计原则与规范

    ### RESTful-API设计原则与规范 #### 一、背景与基础概念 RESTful架构作为一种流行的互联网软件架构,因其结构清晰、符合标准、易于理解和扩展等特点而受到广泛青睐。REST(Representational State Transfer)的...

    Java+restful+Web+Service实战

    3. **JAX-RS规范**:Java API for RESTful Web Services(JAX-RS)是Java中实现RESTful服务的标准API。学习使用JAX-RS提供的注解,如`@Path`、`@GET`、`@POST`、`@PathParam`等,来创建RESTful服务。 4. **jersey...

Global site tag (gtag.js) - Google Analytics