clnrest: add more valid request and response types

Changelog-Added: clnrest can now return successful responses as xml, yaml, or form-encoded in addition to json defined in the 'Accept' header. The same goes for request types defined in the 'Content-type' header.
This commit is contained in:
daywalker90
2025-06-27 17:14:35 +02:00
committed by ShahanaFarooqui
parent 2e7181d04f
commit bf37d41c7e
4 changed files with 432 additions and 39 deletions

69
Cargo.lock generated
View File

@@ -482,9 +482,13 @@ dependencies = [
"hyper 1.6.0",
"log",
"log-panics",
"quick-xml",
"rcgen",
"roxmltree_to_serde",
"serde",
"serde_json",
"serde_qs",
"serde_yml",
"socketioxide",
"tokio",
"tokio-util",
@@ -1240,6 +1244,16 @@ version = "0.2.172"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
[[package]]
name = "libyml"
version = "0.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3302702afa434ffa30847a83305f0a69d6abd74293b6554c18ec85c7ef30c980"
dependencies = [
"anyhow",
"version_check",
]
[[package]]
name = "linux-raw-sys"
version = "0.9.4"
@@ -1604,6 +1618,16 @@ dependencies = [
"prost",
]
[[package]]
name = "quick-xml"
version = "0.37.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb"
dependencies = [
"memchr",
"serde",
]
[[package]]
name = "quote"
version = "1.0.40"
@@ -1759,6 +1783,25 @@ dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "roxmltree"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97"
[[package]]
name = "roxmltree_to_serde"
version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4eabe602f48dfc72e56d9beefcefe457c2898b3b4853ba4aa836804e49732460"
dependencies = [
"regex",
"roxmltree",
"serde",
"serde_derive",
"serde_json",
]
[[package]]
name = "rust-embed"
version = "8.7.1"
@@ -2008,6 +2051,17 @@ dependencies = [
"serde",
]
[[package]]
name = "serde_qs"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3faaf9e727533a19351a43cc5a8de957372163c7d35cc48c90b75cdda13c352"
dependencies = [
"percent-encoding",
"serde",
"thiserror 2.0.12",
]
[[package]]
name = "serde_urlencoded"
version = "0.7.1"
@@ -2020,6 +2074,21 @@ dependencies = [
"serde",
]
[[package]]
name = "serde_yml"
version = "0.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59e2dd588bf1597a252c3b920e0143eb99b0f76e4e082f4c92ce34fbc9e71ddd"
dependencies = [
"indexmap 2.9.0",
"itoa",
"libyml",
"memchr",
"ryu",
"serde",
"version_check",
]
[[package]]
name = "sha1"
version = "0.10.6"