Combinando buffers proto de Google con Jersey / JAX-RS
Actualmente tengo un servicio web RESTful con puntos finales expuestos a través de 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
}
}
Uso Jackson para serializar / deserializar mis POJO en JSON, y mi servicio responde y envía mis POJO comoapplication/json
.
Ahora estoy buscando posiblemente usar buffers de protocolo de Google (o una tecnología equivalente) para ayudar a comprimir / optimizar la comunicación entre el cliente y el servicio, ya que JSON / text es bastante voluminoso / derrochador.
En realidad, tengo un gran backend que consiste en una arquitectura de "microservicio"; docenas de servicios REST que se comunican entre sí; Es por eso que estoy buscando optimizar los mensajes enviados de un lado a otro entre todos.
Entonces, pregunto: ¿es posible que Jersey / JAX-RS siga sirviendo mis puntos finales de servicio, pero destripar las cosas de Jackson / JSON y reemplazarlas con buffers de protocolo de Google? Si es así, ¿cómo podría ser este código?