29

在 Java 中实现客户端和服务器 REST 框架的最佳框架是什么?我一直在努力寻找一个易于使用的解决方案。

更新:Jersey 和 Restlet 似乎都是不错的选择。我们可能会使用 Restlet,但我们会尝试两者。

4

10 回答 10

24

泽西岛对双方来说都很容易。要编写 Web 服务,您可以使用注解:

@Path("/helloworld")
public class HelloWorldResource {

    // The Java method will process HTTP GET requests
    @GET
    // The Java method will produce content identified by the MIME Media
    // type "text/plain"
    @Produces("text/plain")
    public String helloWorld() {
        // Return some cliched textual content
        return "Hello World";
    }
}

对于客户:

Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/helloworld");
String s = webResource.get(String.class);
System.out.println(s); // prints Hello World
于 2009-09-30T03:58:56.857 回答
20

Restlet听起来应该提供您正在寻找的内容:

  • 支持客户端和服务器(在一个相对对称的 api 中)
  • 智能网址绑定
  • mime 类型理解(给定可接受的 mime 类型,它会询问您的资源在该类型中的表示)
  • 支持 JAX-RS 注释(就像 Jersey)
于 2009-09-30T02:22:43.433 回答
6

也看看dropwizard

于 2012-07-11T07:28:41.967 回答
3

Restlet 还在其 2.0 版本中支持客户端和服务器端的注释。JAX-RS API 也支持作为扩展。

这是服务器端的一个简单示例:

public class HelloWorldResource extends ServerResource {

    @Get
    public String represent() {
        return "hello, world";
    }

}

在客户端:

// Outputting the content of a Web page  
new ClientResource("http://www.restlet.org").get().write(System.out);

如需更多文档,请查看此页面

于 2009-09-30T08:04:08.137 回答
2

有 JBoss 的新RESTEasy库。自首次推出以来,它似乎正在快速发展。我不知道这是否有好处;它在我的“检查”清单上。

于 2009-09-30T12:20:36.377 回答
1

我个人没有使用过它,但我与之合作的一些团队正在使用 Spring 3 MVC。 Spring 3 中的 REST:@MVC看起来像是一篇不错的博客文章概述。RESTful 功能包括“URI 模板”、“内容协商”、“HTTP 方法转换”、“ETag 支持”等。

编辑:另外,请参阅这个问题: 任何人都可以推荐一个基于 MVC 并支持 REST 的 Java Web 框架吗?

于 2009-09-30T12:37:27.477 回答
1

您可以查看 CXF JAX-RS 实现。有关其功能的完整列表,请查看JAX-RS 的 CXF 网站。该项目背后的社区似乎非常活跃(2013 年 7 月)。CXF 邮件列表中每天的邮件数量就是一个标志 。

于 2012-02-23T14:42:32.890 回答
0

我可以推荐 Apache wink,一个仍处于孵化模式的新框架,但非常成熟和高质量。

http://incubator.apache.org/wink/

它实现了 JAX-RS 规范,它具有用于 REST 开发的客户端和服务器框架。Apache 支持这个项目 - 这总是一个好兆头(和一个好的许可证:-))

我最喜欢这个框架的地方在于它与 Spring 的直观集成,如果您希望框架易于配置和扩展,它非常有用。

于 2010-02-08T17:50:41.600 回答
0

更新:不再维护 Xydra Restless +++ 如果您在 Goolge AppEngine 发布“保留实例”功能之前使用它们,您可能会考虑Xydra Restless,它的功能很少但加载速度很快。

于 2010-10-18T16:45:04.820 回答
-1

我最喜欢的是 Spring MVC,你对客户端和服务器端都有支持......而且你也有 Android 支持 =)

例如,您可以在此处查看 Spring Android 的示例

于 2012-02-23T14:59:20.620 回答