使用protobuf的REST Java Web服务

时间:2012-01-10 07:42:12

标签: java rest protocol-buffers

我想使用Java& amp;来实现REST Web服务。 protobuf的。

有人能指出我从哪里开始或如何实施它?任何好的教程??

谢谢!

3 个答案:

答案 0 :(得分:9)

答案 1 :(得分:3)

您可以在帖子中看到我们如何创建一个JX-RS Web服务,该服务正在生成Google协议缓冲区。源代码可用at my blog

我正在做的是将协议缓冲区对象从服务器端转换为字节数组,并通过服务发送数组: 服务代码如下,填充对象并将其作为响应。

UserDTO.User user = UserDTO.User.newBuilder(). //protocol buffer object
          setSessionId(id).
          setName("l070020").
          build();
return Response.ok(user.toByteArray(),MediaType.APPLICATION_OCTET_STREAM).status(200).build();

协议缓冲区对象具有解析和填充功能,可以通过流填充协议缓冲区对象。 所以我通过流用于数据通信。 在客户端,我正在连接到Web服务

HttpGet request = new HttpGet("http://localhost:8080/maven.work/service/mainServices/get_user");
request.addHeader("accept","application/octet-stream");
HttpResponse response = httpClient.execute(request);

协议缓冲区内置了解析流的方法,下面我从响应中解析流

User user = User.parseFrom(response.getEntity().getContent());

类似地,您可以以字节数组的形式将协议缓冲区对象发送到服务器,服务器可以从HTTP Servlet请求流中获取它,并像客户端一样解析它。

答案 2 :(得分:1)

简单来说,您可以编写一个普通的servlet并使用protobuf返回数据的seralization。对于REST,我更喜欢RESTeasy。也许这有助于进一步:Google protocol buffers and servlets