From 03ef1f777c6678b69e8dc503211369893c9a78a6 Mon Sep 17 00:00:00 2001 From: JasterV <49537445+JasterV@users.noreply.github.com> Date: Tue, 28 Oct 2025 17:58:18 +0100 Subject: [PATCH] update: practical_grpc slide --- docs/assets/images/project-structure-2.png | Bin 0 -> 37051 bytes docs/assets/images/project-structure.png | Bin 0 -> 45446 bytes docs/assets/images/protocol-buffers.png | Bin 0 -> 27085 bytes docs/assets/themes/prima.css | 3 +- docs/practical_grpc.md | 125 ++++++++++++++++++++- 5 files changed, 125 insertions(+), 3 deletions(-) create mode 100644 docs/assets/images/project-structure-2.png create mode 100644 docs/assets/images/project-structure.png create mode 100644 docs/assets/images/protocol-buffers.png diff --git a/docs/assets/images/project-structure-2.png b/docs/assets/images/project-structure-2.png new file mode 100644 index 0000000000000000000000000000000000000000..3ae964eb0f9ac66afba18d81d2639c2e78b007ab GIT binary patch literal 37051 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

qZxG3;q3Ohn-WPLA&19p?k_QzWg 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 P;7d$c>RIL!t+)RTr3?AA literal 0 HcmV?d00001 diff --git a/docs/assets/images/project-structure.png b/docs/assets/images/project-structure.png new file mode 100644 index 0000000000000000000000000000000000000000..502a170d8b926b42a179f7e318809d642a6baca1 GIT binary patch literal 45446 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 literal 0 HcmV?d00001 diff --git a/docs/assets/themes/prima.css b/docs/assets/themes/prima.css index a4a4132..c6257a7 100644 --- a/docs/assets/themes/prima.css +++ b/docs/assets/themes/prima.css @@ -261,7 +261,8 @@ body .slides-header { } .column { - flex: 1; + display: flex; + flex-direction: column; } /********************************************* diff --git a/docs/practical_grpc.md b/docs/practical_grpc.md index 3d9cae3..d9b2a49 100644 --- a/docs/practical_grpc.md +++ b/docs/practical_grpc.md @@ -1,5 +1,5 @@ -

A practical guide on gRPC

- +

A practical guide to gRPC with

+rust logo

Victor Martinez

--- @@ -48,3 +48,124 @@ +--- + +## Ingredients to build a gRPC API + +
+ protocol buffers logo + Buf logo +
+Tonic logo + +--- + +## Defining our API + +protocol buffers logo + +--- + +## Project structure + +protocol buffers logo + +https://github.com/primait/es-policy-grpc + +--- + +## Project structure + +protocol buffers logo + +https://github.com/primait/es-policy-grpc + +--- + +## Defining a request + +```proto +syntax = "proto3"; + +package es_policy_grpc.messages.issue_policy.request.v1; + +import "es_policy_grpc/domain/v1/bundle.proto"; +import "es_policy_grpc/domain/v1/coverage.proto"; +import "es_policy_grpc/domain/v1/issuing_company.proto"; +// ... etc + +message IssuePolicyRequest { + google.protobuf.Timestamp requested_at = 1; + google.protobuf.Timestamp start_at = 2; + google.protobuf.Timestamp end_at = 3; + google.protobuf.Timestamp purchased_at = 4; + es_policy_grpc.domain.v1.TransactionInformation transaction = 5; + es_policy_grpc.domain.v1.IssuingCompany issuing_company = 6; + string quote_id = 7; + es_policy_grpc.domain.v1.QuoteSource quote_source = 8; + string application_id = 9; + string offer_id = 10; + es_policy_grpc.domain.v1.Price price = 11; + es_policy_grpc.domain.v1.Bundle bundle = 12; + repeated es_policy_grpc.domain.v1.ProductCover covers = 13; + es_policy_grpc.domain.v1.PolicyHolderInformation policy_holder_information = 14; + es_policy_grpc.domain.v1.VehicleInformation vehicle_information = 15; + es_policy_grpc.domain.v1.QuoteVersion quote_version = 16; +} +``` + +--- + +## Defining a request + +```proto +syntax = "proto3"; + +package es_policy_grpc.domain.v1; + +import "es_policy_grpc/domain/v1/price.proto"; +import "google/protobuf/timestamp.proto"; + +message ProductCover { + CoverType cover_type = 1; + google.protobuf.Timestamp start_at = 2; + google.protobuf.Timestamp end_at = 3; + es_policy_grpc.domain.v1.Price price = 4; + optional RoadsideAssistanceTier roadside_assistance_tier = 5; +} + +enum CoverType { + COVER_TYPE_UNSPECIFIED = 0; + COVER_TYPE_MANDATORY_THIRD_PARTY_LIABILITY = 1; + COVER_TYPE_VOLUNTARY_THIRD_PARTY_LIABILITY = 2; + COVER_TYPE_DRIVER_ACCIDENT = 3; + COVER_TYPE_WINDSHIELD = 4; + COVER_TYPE_THEFT = 5; + // ..etc +} + +enum RoadsideAssistanceTier { + ROADSIDE_ASSISTANCE_TIER_UNSPECIFIED = 0; + ROADSIDE_ASSISTANCE_TIER_BASE = 1; + ROADSIDE_ASSISTANCE_TIER_PREMIUM = 2; + ROADSIDE_ASSISTANCE_TIER_PREMIUM_V2 = 3; +} +``` + +--- + +## Defining a response + +```proto +syntax = "proto3"; + +package es_policy_grpc.messages.issue_policy.response.v1; + +message IssuePolicyResponse { + string policy_id = 1; +} +``` + +--- + +## About backwards compatibility