Update slides

This commit is contained in:
JasterV 2025-06-16 01:10:21 +02:00
commit c29455218f
2 changed files with 42 additions and 6 deletions

View file

@ -1,5 +1,6 @@
words = [ words = [
"chrono", "chrono",
"dyn",
"idl", "idl",
"prima", "prima",
"prost", "prost",

View file

@ -437,7 +437,8 @@ note:
We need to expose the generated code through our lib.rs We need to expose the generated code through our lib.rs
--- ---
## Auto generated services
## Filling the gaps
```rust ```rust
pub trait PolicyManagementService { pub trait PolicyManagementService {
@ -454,10 +455,44 @@ note:
We get a trait generated from the Protobuf Service definition We get a trait generated from the Protobuf Service definition
--- ---
## Building a server
## Filling the gaps
```rust
use es_policy_grpc::policy_service::v1::PolicyManagementService;
use es_policy_grpc::messages::withdraw_policy::request::v1::WithdrawPolicyRequest;
use es_policy_grpc::messages::withdraw_policy::response::v1::WithdrawPolicyResponse;
use tonic::{Request, Response, Status};
pub struct PolicyManagementServiceImpl {
application: Arc<dyn ApplicationServices>,
}
impl PolicyManagementService for PolicyManagementServiceImpl {
async fn withdraw_policy(
&self,
request: Request<WithdrawPolicyRequest>,
) -> Result<Response<WithdrawPolicyResponse>, Status> {
let request = request.into_inner();
let policy_id = Uuid::parse_str(&request.policy_id).unwrap();
let details = request.try_to_domain().unwrap();
self.application.cancel_policy(policy_id, details).await.unwrap()
Ok(Response::new(WithdrawPolicyResponse {
policy_id: policy_id.to_string(),
}))
}
// ..
}
```
---
## Building the server
```rust ```rust
// main.rs
use tonic::Server as GrpcServer; use tonic::Server as GrpcServer;
use es_policy_grpc::policy_service::v1::PolicyManagementServiceServer as PolicyManagementServerStub; use es_policy_grpc::policy_service::v1::PolicyManagementServiceServer as PolicyManagementServerStub;
@ -484,10 +519,9 @@ Simple build of a Tonic Server. We will dive into how to add middleware later.
Highlight the fact that at the end of the day the gRPC server will be listening to a TCP port like any other HTTP2 server. Highlight the fact that at the end of the day the gRPC server will be listening to a TCP port like any other HTTP2 server.
--- ---
## Building a client ## Building the client
```rust ```rust
// Auto-generated client stub
use es_policy_grpc::policy_service::v1::PolicyManagementServiceClient as PolicyManagementClientStub; use es_policy_grpc::policy_service::v1::PolicyManagementServiceClient as PolicyManagementClientStub;
use tonic::{metadata::MetadataValue, Request}; use tonic::{metadata::MetadataValue, Request};
use es_policy_grpc::messages::decline_renewal::request::v1::{ use es_policy_grpc::messages::decline_renewal::request::v1::{
@ -496,7 +530,8 @@ use es_policy_grpc::messages::decline_renewal::request::v1::{
CustomerDeclineRenewalReason CustomerDeclineRenewalReason
}; };
let mut client = PolicyManagementClientStub::connect("http://[::1]:50051").await?; // Auto-generated client stub
let mut client = PolicyManagementClientStub::connect("http://localhost:50051").await?;
let mut request = Request::new(DeclineRenewalRequest { let mut request = Request::new(DeclineRenewalRequest {
policy_id: uuid::Uuid::new_v4(), policy_id: uuid::Uuid::new_v4(),