我在高级(不是非常详尽的)工作过RESTful worked,编码了很少的基于REST的Web服务。
为了开始我在RESTful WS的旅程,我阅读了在线文章(wiki、在线教程等)。我逐渐认识到,它是一种指定约束的体系结构风格,当应用于web服务时,会产生所需的属性,如性能、可伸缩性等。好的,这是这个概念的理论部分。
一个使用JAX-RS的简单示例
@Path("/simple")
public class SimpleRESTService {
@GET
@Path("/{param}")
public Response getMsg(@PathParam("param") String message) {
String output = "Jersey say : " + message;
return Response.status(200).entity(output).build();
}
}我的怀疑是:
如果REST是一种架构风格(并且使用这些准则构建RESTful web服务),那么JAX-RS会做什么呢?据我所知,REST只是架构风格,而不是任何规范,JAX与此有什么关系?我很难理解这两个实体之间的关系。
有人能用简单的话帮助我理解这一点吗。
发布于 2016-09-04 11:16:53
REST确实是一种构建独立于应用层协议的web服务的体系结构风格(它也可以通过FTP或HTTP实现)。
JAX只是Java的一个标准化API,您可以使用它轻松地在Java中实现RESTful服务。它是开发人员卸下负担的工具包,作为Java的一部分,它是在应用服务器中实现的,比如WildFly。
但是请注意,在像Spring这样的框架中使用Spring和模块创建REST服务是尽可能的。
编辑:
虽然REST是一种定义良好的体系结构风格,但它(正如您提到的)不是规范,所以开发人员对REST有很多模糊的地方。
简而言之,它所述的只是“嘿,伙计,如果你以这种方式和这种方式使用通信协议(例如HTTP),您将非常方便地进行更改和扩展,并且您的服务的客户可以很直接地与您交谈”。
JAX-RS使您能够使用动态部件(例如:/api/jediknight/{ id })定义服务终结点,这样id可以是任何内容,这样就可以更容易地以您(或您的客户端)所希望的格式对客户机进行响应,比如XML或JSON。它提供了方便的包装器对象,可以将响应体与状态代码和头以及许多其他方便的东西包装在一起。
然而,问题是:作为一个开发人员,遵循REST风格的所阐明的原则仍然是您的责任。没有任何东西是由JAX-RS强加给你的。
公平地说,您甚至可以通过使用稍微低级的Servlet来实现RESTful web服务。JAX只是对你隐藏不必要的细节,使你的生活更容易。
我希望它变得更清楚了:)
发布于 2016-09-04 11:13:52
(JAX),是用于开发人员REST服务的一组if API。JAX是Java EE6的一部分,使开发人员能够轻松地开发REST应用程序。
你可以在这里读到更多:http://www.mkyong.com/tutorials/jax-rs-tutorials/
https://stackoverflow.com/questions/39316243
复制相似问题