通过REST API发送协议缓冲区对象的最佳方法是什么?

时间:2019-11-22 12:58:27

标签: rest jax-rs protocol-buffers

我正在用Java创建一个端点,该端点应由其他js和python服务使用。他们将向我发送Data原型对象。这些类已经从原始文件生成。我当前的解决方案如下:

    @POST
    @Consumes({"application/protobuf", "application/x-protobuf"})
    @Path("/person")
    @ApiOperation("Add new or update existing PersonProto")
    public Response addOrUpdatePersonProto(@NotNull @Valid PersonProto personProto) {
        personService.addOrUpdatePersonProto(personProto);
        return Response.noContent().build();
    }

这是正确的方法吗?还是我应该期待byte []或其他内容,然后告诉客户将解析为byte []的protobuf消息发送给我?那么有效地将其更改为此吗?:

    @POST
    @Path("/person")
    @ApiOperation("Add new or update existing PersonProto")
    public Response addOrUpdatePersonProto(byte[] bytes) {
        PersonProto personProto = PersonProto.parseFrom(bytes);
        personService.addOrUpdatePersonProto(personProto);
        return Response.noContent().build();
    }

0 个答案:

没有答案