Я хочу реализовать веб-службу REST с помощью Java и protobuf.
Может ли кто-нибудь указать мне, с чего начать или как его реализовать? Любой хороший учебник
Спасибо!
Я хочу реализовать веб-службу REST с помощью Java и protobuf.
Может ли кто-нибудь указать мне, с чего начать или как его реализовать? Любой хороший учебник
Спасибо!
Ниже в двух статьях показано, как именно это
В сообщении вы можете видеть, как мы можем создать веб-службу JX-RS, которая в ответ производит буферирование протокола Google. Исходный код доступен в моем блоге
то, что я делаю, это преобразование объекта буфера протокола в массив байтов со стороны сервера и отправка массива через службу: Сервисный код находится ниже, заполняя объект и помещая его в ответ.
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();
Объект буфера протокола имеет возможность анализировать и заполнять заполняющий объект буфера протокола через поток. Поэтому я использую поток для обмена данными. На стороне клиента я делаю подключение к веб-сервису
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 и проанализировать его так же, как это делает клиент.
Чтобы начать просто, вы можете написать простой сервлет и вернуть серализацию своих данных с protobuf. Для REST я предпочитаю RESTeasy. Возможно, это помогает: буферы и сервлеты протокола Google