From 96ae61421a59f8a45c73e4204582a9b0b3a06b38 Mon Sep 17 00:00:00 2001
From: centra
Date: Fri, 19 Dec 2025 16:36:34 +0900
Subject: [PATCH] fix(chainfire): Chain KV route handlers in axum router
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Axum 0.7 route registration requires chaining handlers for the same
path. Multiple .route() calls for "/api/v1/kv/{key}" overwrote each
other, leaving only DELETE accessible. Changed to chain all methods:
.route("/path", get(h).put(h).delete(h))
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5
---
chainfire/crates/chainfire-server/src/rest.rs | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/chainfire/crates/chainfire-server/src/rest.rs b/chainfire/crates/chainfire-server/src/rest.rs
index d014d32..c805a75 100644
--- a/chainfire/crates/chainfire-server/src/rest.rs
+++ b/chainfire/crates/chainfire-server/src/rest.rs
@@ -134,9 +134,7 @@ pub struct PrefixQuery {
/// Build the REST API router
pub fn build_router(state: RestApiState) -> Router {
Router::new()
- .route("/api/v1/kv/{key}", get(get_kv))
- .route("/api/v1/kv/{key}", put(put_kv))
- .route("/api/v1/kv/{key}", delete(delete_kv))
+ .route("/api/v1/kv/:key", get(get_kv).put(put_kv).delete(delete_kv))
.route("/api/v1/kv", get(list_kv))
.route("/api/v1/cluster/status", get(cluster_status))
.route("/api/v1/cluster/members", post(add_member))