您当前的位置:首页 > 美文摘抄 > 内容

java开发restful接口实例(如何实现支持REST的Java Business Services)

本文目录

  • 如何实现支持REST的Java Business Services
  • 如何使用RestTemplate访问restful服务
  • 如何在Java中 提供 RESTful Web 服务
  • java中rest接口实现数据接收与转发
  • REST是什么如何实现RESTful
  • java开发rest接口
  • 如何开发restful api
  • 如何用java写restful接口

如何实现支持REST的Java Business Services

 下图显示了示例实现中的类。蓝色所示的类是框架外部的类,将它们放在这里是为了展示与框架的结构关系。

  配置文件

  配置文件 “rest-services-config.xml“ 包含 REST 服务表示形式和相应的Java Action之间的映射,如下:

  清单 1. REST 服务配置

    

以下是引用片段:

《?xml version=“1.0“ ?》 

《rest-config》 

  《rest-api id=“CreateUserProfile“ uri=“/Registration/CreateUser“ method=“POST“》 

     《handler id=“RegAction“ class=“ws.registration.restactions.CreateProfile“/》 

  《/rest-api》 

  《rest-api id=“GetUserProfile“ uri=“/Registration/GetUser“ method=“GET“》 

     《handler id=“RegAction“ class=“ ws.registration.restactions.GetProfile“/》 

  《/rest-api》 

... 

《/rest-config》 

  在该示例实现中,XML Binding服务实现在“rl-config.xml“文件中配置的框架配置文件如下所示。通过修改此文件实现的任何自定义实现都可以接入,只要实现了XMLBindingService接口。 

  清单 2:框架配置

以下是引用片段:

# XML Binding Implementation Service 

# Default implementation 

ws.rest.xmlbinding.service.impl=ws.rest.xmlbinding.service.impl.XMLEncDecServiceImpl 

  日志配置文件 “ws_log.properties“ 指定log4j属性和日志文件的位置。这可以按需要作出适当修改。

  Controller Servlet

  RESTServiceServlet在web.xml中配置,处理所有具有上下文路径的请求,其中上下文路径的《web-app》/restservices/*如下所示:

  清单 3:Servlet配置

以下是引用片段:

《servlet》 

    《description》《/description》 

    《display-name》RESTServletService《/display-name》 

    《servlet-name》RESTServletService《/servlet-name》 

    《servlet-class》ws.rest.servlet.RESTServiceServlet《/servlet-class》 

  《/servlet》 

  《servlet-mapping》 

    《servlet-name》RESTServletService《/servlet-name》 

    《url-pattern》/restservices/*《/url-pattern》 

  《/servlet-mapping》  

  REST Action

  对于每个REST资源,例如 GetUserProfile,都将创建一个实现ActionInterface的相应动作类。该接口定义了动作类需要实现的 “doExecute(ActionContext ctx)“ 方法。ActionContext提供服务,获取 REST 路径输入或查询参数,获取XMLBindingService实例并将XML输出发送到客户端,不公开Action的协议细节。PathInputs是一个包含路径值的List对象,路径值的顺序与它们在URL中指定的顺序相同。

  清单 4:Action代码片段

以下是引用片段:

public class GetProfile implements ActionInterface { 

  

  public void doExecute(ActionContext context) throws Exception { 

   // Get the value from URL path 

   String userName = context.getPathInputs().get(0); 

   // Invoke backend service to retrieve user profile 

   UserProfileBean bean = getUser(userName); 

    

    

   // Serialize the bean using framework service and send response 

   String xml = context.getXMLBindingService().serialize(bean); 

   // Use the ActionContext to generate XML and  

   context.sendResponse(response, xml); 

  动作类负责使用超类中的XMLBindingService以XML形式生成输出。请查看示例实现的ws.registration.restactions.GetProfile类。ActionContext还可以提供协议特定的HttpServletRequest和HttpServletResponse对象,以防需要自定义处理。它还提供了Path值和URL参数。

  XML Binding

  该代码示例提供了一个Java XML Binding的实现,该实现使用java.beans.XMLEncoder和java.beans.XMLDecoder类。XML Binding服务实现接受一个JavaBean对象,并将其转换为上述Encoder和Decoder相应的XML表示形式。如果需要JAXB实现,那么可以开发一个实现 ws.rest.xmlbinding.service.XMLBindingService接口的实现类。

  执行示例服务

  示例代码分发包含示例WAR文件“RESTWS.war“,它可以部署在Tomcat容器中(已在Apache Tomcat版本6.0.20上进行了测试)。JDK要求是JDK 1.5以上。

  成功部署该应用程序之后,在浏览器中输入URL:

图 5. 创建Profile Service输入

  该页面调用REST服务

  POST 《url-prefix》/Registration/CreateProfile

  您可以修改在 《string》《/string》 标记中指定的XML值。

  注意:请注意XML结构依赖于JavaBean对象和Java使用的XML序列化技术。

  提交时,动作类显示成功消息,表示后端服务的调用。可以查看 ws_log.log 文件调试消息。

 

图 6. 创建Profile Service输出

  类似地,实现示例GET 《url-prefix》/Registration/GetProfile/{username}服务以检索配置文件,如下图所示:

转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

如何使用RestTemplate访问restful服务

一. 什么是RestTemplate传统情况下在Java代码里访问restful服务,一般使用Apache的HttpClient。不过此种方法使用起来太过繁琐。spring提供了一种简单便捷的模板类来进行操作,这就是RestTemplate。二、举个例子。 //请求地址String url = “其实RestTemplate的功能非常强大

如何在Java中 提供 RESTful Web 服务

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

java中rest接口实现数据接收与转发

java中的接口是一种特殊的类,使用关键字interface创建。接口功能完全实现后,可以打成jar包,提供给其他公司使用。要返回json格式数据,可以把接口中抽象方法的返回值类型规定为JSONObject或JSONString类型。这样当其他公司调用时,得到的数据就是json数据了。另外,以jar形式提供的接口,可以通过反编译得到你的源码,如果你不希望开源,就要加密了。

REST是什么如何实现RESTful

REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。在服务器端,应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用 URI (Universal Resource Identifier) 得到一个惟一的地址。所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。使用的是标准的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。Hypermedia 是应用程序状态的引擎,资源表示通过超链接互联。另一个重要的 REST 原则是分层系统,这表示组件无法了解它与之交互的中间层以外的组件。通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进了底层的独立性。当REST 架构的约束条件作为一个整体应用时,将生成一个可以扩展到大量客户端的应用程序。它还降低了客户端和服务器之间的交互延迟。统一界面简化了整个系统架构,改进了子系统之间交互的可见性。REST 简化了客户端和服务器的实现。RESTful的实现:RESTful Web 服务与 RPC 样式的 Web 服务了解了什么是什么是REST,我们再看看RESTful的实现。最近,使用 RPC 样式架构构建的基于 SOAP 的 Web 服务成为实现 SOA 最常用的方法。RPC 样式的 Web 服务客户端将一个装满数据的信封(包括方法和参数信息)通过 HTTP 发送到服务器。服务器打开信封并使用传入参数执行指定的方法。方法的结果打包到一个信封并作为响应发回客户端。客户端收到响应并打开信封。每个对象都有自己独特的方法以及仅公开一个 URI 的 RPC 样式 Web 服务,URI 表示单个端点。它忽略 HTTP 的大部分特性且仅支持 POST 方法。由于轻量级以及通过 HTTP 直接传输数据的特性,Web 服务的 RESTful 方法已经成为最常见的替代方法。可以使用各种语言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])实现客户端。RESTful Web 服务通常可以通过自动客户端或代表用户的应用程序访问。但是,这种服务的简便性让用户能够与之直接交互,使用它们的 Web 浏览器构建一个 GET URL 并读取返回的内容。在REST 样式的 Web 服务中,每个资源都有一个地址。资源本身都是方法调用的目标,方法列表对所有资源都是一样的。这些方法都是标准方法,包括 HTTP GET、POST、PUT、DELETE,还可能包括 HEADER 和 OPTIONS。在RPC 样式的架构中,关注点在于方法,而在 REST 样式的架构中,关注点在于资源 —— 将使用标准方法检索并操作信息片段(使用表示的形式)。资源表示形式在表示形式中使用超链接互联。Leonard Richardson 和 Sam Ruby 在他们的著作 RESTful Web Services 中引入了术语 REST-RPC 混合架构。REST-RPC 混合 Web 服务不使用信封包装方法、参数和数据,而是直接通过 HTTP 传输数据,这与 REST 样式的 Web 服务是类似的。但是它不使用标准的 HTTP 方法操作资源。它在 HTTP 请求的 URI 部分存储方法信息。好几个知名的 Web 服务,比如 Yahoo 的 Flickr API 和 del.icio.us API 都使用这种混合架构。RESTful的实现:RESTful Web 服务的 Java 框架有两个 Java 框架可以帮助构建 RESTful Web 服务。erome Louvel 和 Dave Pawson 开发的 Restlet(见 参考资料)是轻量级的。它实现针对各种 RESTful 系统的资源、表示、连接器和媒体类型之类的概念,包括 Web 服务。在 Restlet 框架中,客户端和服务器都是组件。组件通过连接器互相通信。该框架最重要的类是抽象类 Uniform 及其具体的子类 Restlet,该类的子类是专用类,比如 Application、Filter、Finder、Router 和 Route。这些子类能够一起处理验证、过滤、安全、数据转换以及将传入请求路由到相应资源等操作。Resource 类生成客户端的表示形式。JSR-311是 Sun Microsystems 的规范,可以为开发 RESTful Web 服务定义一组 Java API。Jersey是对 JSR-311 的参考实现。JSR-311 提供一组注释,相关类和接口都可以用来将 Java 对象作为 Web 资源展示。该规范假定 HTTP 是底层网络协议。它使用注释提供 URI 和相应资源类之间的清晰映射,以及 HTTP 方法与 Java 对象方法之间的映射。API 支持广泛的 HTTP 实体内容类型,包括 HTML、XML、JSON、GIF、JPG 等。它还将提供所需的插件功能,以允许使用标准方法通过应用程序添加其他类型。RESTful的实现:构建 RESTful Web 服务的多层架构RESTful Web 服务和动态 Web 应用程序在许多方面都是类似的。有时它们提供相同或非常类似的数据和函数,尽管客户端的种类不同。例如,在线电子商务分类网站为用户提供一个浏览器界面,用于搜索、查看和订购产品。如果还提供 Web 服务供公司、零售商甚至个人能够自动订购产品,它将非常有用。与大部分动态 Web 应用程序一样,Web 服务可以从多层架构的关注点分离中受益。业务逻辑和数据可以由自动客户端和 GUI 客户端共享。惟一的不同点在于客户端的本质和中间层的表示层。此外,从数据访问中分离业务逻辑可实现数据库独立性,并为各种类型的数据存储提供插件能力。图1 展示了自动化客户端,包括 Java 和各种语言编写的脚本,这些语言包括 Python、Perl、Ruby、PHP 或命令行工具,比如 curl。在浏览器中运行且作为 RESTful Web 服务消费者运行的 Ajax、Flash、JavaFX、GWT、博客和 wiki 都属于此列,因为它们都代表用户以自动化样式运行。自动化 Web 服务客户端在 Web 层向 Resource Request Handler 发送 HTTP 响应。客户端的无状态请求在头部包含方法信息,即 POST、GET、PUT 和 DELETE,这又将映射到 Resource Request Handler 中资源的相应操作。每个请求都包含所有必需的信息,包括 Resource Request Handler 用来处理请求的凭据。从Web 服务客户端收到请求之后,Resource Request Handler 从业务逻辑层请求服务。Resource Request Handler 确定所有概念性的实体,系统将这些实体作为资源公开,并为每个资源分配一个惟一的 URI。但是,概念性的实体在该层是不存在的。它们存在于业务逻辑层。可以使用 Jersey 或其他框架(比如 Restlet)实现 Resource Request Handler,它应该是轻量级的,将大量职责工作委托给业务层。Ajax 和 RESTful Web 服务本质上是互为补充的。它们都可以利用大量 Web 技术和标准,比如 HTML、JavaScript、浏览器对象、XML/JSON 和 HTTP。当然也不需要购买、安装或配置任何主要组件来支持 Ajax 前端和 RESTful Web 服务之间的交互。RESTful Web 服务为 Ajax 提供了非常简单的 API 来处理服务器上资源之间的交互。图1 中的 Web 浏览器客户端作为 GUI 的前端,使用表示层中的 Browser Request Handler 生成的 HTML 提供显示功能。Browser Requester Handler 可以使用 MVC 模型(JSF、Struts 或 Spring 都是 Java 的例子)。它从浏览器接受请求,从业务逻辑层请求服务,生成表示并对浏览器做出响应。表示供用户在浏览器中显示使用。表示不仅包含内容,还包含显示的属性,比如 HTML 和 CSS。 业务规则可以集中到业务逻辑层,该层充当表示层和数据访问层之间的数据交换的中间层。数据以域对象或值对象的形式提供给表示层。从业务逻辑层中解耦 Browser Request Handler 和 Resource Request Handler 有助于促进代码重用,并能实现灵活和可扩展的架构。此外,由于将来可以使用新的 REST 和 MVC 框架,实现它们变得更加容易,无需重写业务逻辑层。数据访问层提供与数据存储层的交互,可以使用 DAO 设计模式或者对象-关系映射解决方案(如 Hibernate、OJB 或 iBATIS)实现。作为替代方案,业务层和数据访问层中的组件可以实现为 EJB 组件,并取得 EJB 容器的支持,该容器可以为组件生命周期提供便利,管理持久性、事务和资源配置。但是,这需要一个遵从 Java EE 的应用服务器(比如 JBoss),并且可能无法处理 Tomcat。该层的作用在于针对不同的数据存储技术,从业务逻辑中分离数据访问代码。数据访问层还可以作为连接其他系统的集成点,可以成为其他 Web 服务的客户端。数据存储层包括数据库系统、LDAP 服务器、文件系统和企业信息系统(包括遗留系统、事务处理系统和企业资源规划系统)。使用该架构,您可以开始看到 RESTful Web 服务的力量,它可以灵活地成为任何企业数据存储的统一 API,从而向以用户为中心的 Web 应用程序公开垂直数据,并自动化批量报告脚本。什么是REST:结束语REST 描述了一个架构样式的互联系统(如 Web 应用程序)。REST 约束条件作为一个整体应用时,将生成一个简单、可扩展、有效、安全、可靠的架构。由于它简便、轻量级以及通过 HTTP 直接传输数据的特性,RESTful Web 服务成为基于 SOAP 服务的一个最有前途的替代方案。用于 web 服务和动态 Web 应用程序的多层架构可以实现可重用性、简单性、可扩展性和组件可响应性的清晰分离。Ajax 和 RESTful Web 服务本质上是互为补充的。

java开发rest接口

你这明显是想用java开发WebService接口而且rest风格xml格式现在有很大现成的框架可以做到比如常用的CXF或者直接用jdk的WebService注解来做建议用CXF框架做因为他能跟其他框架很好的整合提供的功能也很强大不用你自己去写那么多

如何开发restful api

用spring自带的restTemplate就可以了。RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。调用RestTemplate的默认构造函数,RestTemplate对象在底层通过使用java.net包下的实现创建HTTP 请求,可以通过使用ClientHttpRequestFactory指定不同的HTTP请求方式。

如何用java写restful接口

一个好的RESTfulAPI,应该具备以下特征:这个API应该是对浏览器友好的,能够很好地融入Web,而不是与Web格格不入。1.浏览器是最常见和最通用的REST客户端。好的RESTfulAPI应该能够使用浏览器+HTML完成所有的测试(不需要使用编程语言)。


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 简单又大气的敬酒话,结婚简单又大气的敬酒话(敬酒词<建议收藏>)

下一篇: 个性发展的表现,个性发展方面(一个人开始变强的三个表现)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号