From 0f663ccb94581264e839bab9ae386114e8bd9973 Mon Sep 17 00:00:00 2001 From: rtkay123 Date: Fri, 8 Aug 2025 15:13:17 +0200 Subject: feat(warden): openapi --- lib/warden-core/Cargo.toml | 5 +++++ lib/warden-core/build.rs | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) (limited to 'lib/warden-core') diff --git a/lib/warden-core/Cargo.toml b/lib/warden-core/Cargo.toml index dbe61fd..9cd4617 100644 --- a/lib/warden-core/Cargo.toml +++ b/lib/warden-core/Cargo.toml @@ -13,12 +13,17 @@ rustdoc-args = ["--cfg", "docsrs"] [dependencies] prost = { workspace = true, optional = true } +serde = { workspace = true, optional = true } +serde_json = { workspace = true, optional = true } tonic = { workspace = true, optional = true } tonic-types = { version = "0.14.0", optional = true } +utoipa = { workspace = true, optional = true } [features] default = [] iso20022 = ["dep:prost", "dep:tonic", "dep:tonic-types"] +serde = ["dep:serde", "serde/derive", "dep:serde_json"] +openapi = ["dep:utoipa", "serde"] [build-dependencies] tonic-prost-build = { version = "0.14.0", features = ["cleanup-markdown"] } diff --git a/lib/warden-core/build.rs b/lib/warden-core/build.rs index be4f8f2..7ae6b6a 100644 --- a/lib/warden-core/build.rs +++ b/lib/warden-core/build.rs @@ -50,6 +50,12 @@ fn build_proto(package: &str, entity: Entity) -> Result<(), Box Result<(), Box tonic_prost_build::Builder { + config.type_attribute( + ".", + "#[derive(serde::Serialize, serde::Deserialize)] #[serde(rename_all = \"snake_case\")]", + ) +} + +#[cfg(all(feature = "openapi", feature = "iso20022"))] +fn add_openapi(config: tonic_prost_build::Builder) -> tonic_prost_build::Builder { + config.type_attribute(".", "#[derive(utoipa::ToSchema)]") +} -- cgit v1.2.3