diff --git a/Home.md b/Home.md index 08ab485..17f9653 100644 --- a/Home.md +++ b/Home.md @@ -1,11 +1,80 @@ Описание прото опций и типов: -* micro.codec.Frame (import "codec/frame.proto"): - - специальный тип данных, про который знают все микро кодеки и ничего не делают с сообщением в этом случае а просто копируют байты как есть. - - пример: rpc Call(micro.codec.Frame) - -* micro.tag.tags (import "tag/tag.proto"): +* micro.codec.Frame (```import "codec/frame.proto";```): + - специальный тип данных, про который знают все микро кодеки и ничего не делают с сообщением в этом случае? а просто копируют байты как есть. + - пример: + ``` + rpc Call(micro.codec.Frame) returns (micro.codec.Frame) {}; + ``` + +* micro.tag.tags (```import "tag/tag.proto";```): - позволяет управлять тегами для гененируемых полей структуры (добавить, изменить существующие). - - пример: (micro.tag.tags) = "xml:\"field_name,omitempty\"" + - пример: + ``` + string my_proto_filed = 1 [(micro.tag.tags) = "xml:\"field_name,omitempty\""]; + ``` -* \ No newline at end of file +* micro.api.http (```import "api/annotations.proto";```): + - специальный тип, используется как для генерации опенапи описания, так и для генерации микро хттп клиента и сервера. + - пример: + ``` + rpc Call(micro.codec.Frame) returns (micro.codec.Frame) { + option (micro.api.http) = { post: "/v1/call"; body: "*"; }; + }; + ``` + +* micro.api.micro_method (```import "api/annotations.proto";```); + - специальный тип, используется при генерации грпц и хттп клиента и сервера. Служит для указания максимального времени вызова или обработки запроса. + - пример: + ``` + rpc Call(micro.codec.Frame) returns (micro.codec.Frame) { + option (micro.api.micro_method) = { timeout: "5s"; }; + }; + ``` + +* micro.openapiv3.openapiv3_operation (```import "openapiv3/annotations.proto";```): + - специальный тип, используется при генерации опенапи описания, а также при генерации хттп клиента и сервера. + - пример: + ``` + package example; + rpc Call(micro.codec.Frame) returns (micro.codec.Frame) { + option (micro.openapiv3.openapiv3_operation) = { + operation_id: "Call"; + responses: { + default: { + reference: { + _ref: ".example.ErrorRsp"; + }; + }; + }; + parameters: { + parameter: { + name: "Clientid"; // имя поля структуры + in: "header"; // откуда брать данные или куда записывать + schema: { + schema: { + type: "string"; // тип данных в опенапи спецификации + }; + }; + required: true; // обязательность поля + }; + }; + parameters: { + parameter: { + name: "Csrftoken"; + in: "cookie"; + schema: { + schema: { + type: "string"; + }; + }; + required: true; + }; + }; + }; + } + + message ErrorRsp { + + }; + ``` \ No newline at end of file