我想使用Java& amp;来实现REST Web服务。 protobuf的。
有人能指出我从哪里开始或如何实施它?任何好的教程??
谢谢!
答案 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