Я считаю утомительным снова определять protobuf message
в файле .proto
после того, как модель сущности будет готова.
Например, чтобы подвергнуть операции CRUD
через gRPC, вам необходимо определить файлы table schema
в .proto
message
, потому что это требуется для gRPC.
В традиционной restful
разработке API нам не нужно определять messages
, потому что мы просто возвращаем json
, и объект json
может быть произвольным.
Есть предложения?
P.S. Я знаю, что gRPC более эффективен, чем restful
API во время выполнения. Однако я считаю, что он гораздо менее эффективен, чем restful
API во время разработки.
Прежде чем я нашел элегантный способ повысить эффективность, я в настоящее время использую некрасивый способ: определите JSON message type
:
syntax = "proto3";
package user;
service User {
rpc FindOneByJSON(JSON) returns (JSON) {}
rpc CreateByJSON(JSON) returns (JSON) {}
}
message JSON {
string value = 1;
}
Это ужасно, потому что ему нужен вызывающий JSON.stringify()
аргументы и JSON.parse()
ответ.