相关疑难解决方法(0)

将Google proto缓冲区与Jersey/JAX-RS相结合

目前我有一个RESTful Web服务,其端点通过Jersey/JAX-RS公开:

@Path("/widgets")
public class WidgetResource {
    @GET
    List<Widget> getAllWidgets() {
        // gets Widgets somehow
    }

    @POST
    Widget save(Widget w) {
        // Save widget and return it
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用Jackson将我的POJO序列化/反序列化为JSON,我的服务都响应并发送回我的POJO application/json.

我现在希望可能使用Google协议缓冲区(或等效技术)来帮助压缩/优化客户端和服务之间的通信,因为JSON /文本相当庞大/浪费.

实际上,我有一个庞大的后端,包括一个"微服务"架构; 数十个REST服务相互通信; 这就是为什么我希望优化在所有这些之间来回发送的消息.

所以我问:是否仍然可以让Jersey/JAX-RS提供我的服务端点,但要删除Jackson/JSON的内容并用Google协议缓冲区替换它?如果是这样,这段代码可能是什么样的?

java rest jax-rs jersey protocol-buffers

14
推荐指数
1
解决办法
5786
查看次数

Dropwizard支持多种序列化格式

在RESTful API中,很典型的做法是查看可以支持多种序列化格式的端点:

// Sends back "fizz" resource that has an id=34 as a JSON object
http://api.example.com/v2/fizz/34.json

// Sends back "fizz" resource that has an id=34 as an XML object
http://api.example.com/v2/fizz/34.xml

// Sends back "fizz" resource that has an id=34 as a binary object,
// say, using Google Protocol Buffers
http://api.example.com/v2/fizz/34.bin
Run Code Online (Sandbox Code Playgroud)

我正在设计一个Dropwizard服务,并试图弄清楚如何实现多种格式支持,但是在这方面文档很贫乏。有任何想法吗?

java rest jax-rs jersey dropwizard

1
推荐指数
1
解决办法
1129
查看次数

标签 统计

java ×2

jax-rs ×2

jersey ×2

rest ×2

dropwizard ×1

protocol-buffers ×1