@@ -9,6 +9,7 @@ use axum::{
9
9
routing:: { get, post} ,
10
10
Json , Router ,
11
11
} ;
12
+ use axum_extra:: extract:: { rejection:: HostRejection , Host } ;
12
13
use http:: { header:: CACHE_CONTROL , HeaderValue , StatusCode } ;
13
14
use serde:: { ser:: SerializeMap , Serialize , Serializer } ;
14
15
use tracing:: { debug, info_span, Instrument } ;
@@ -63,17 +64,17 @@ pub fn router(env: Env) -> Router {
63
64
get ( || async { Redirect :: to ( env ! ( "CARGO_PKG_HOMEPAGE" ) ) } )
64
65
. layer ( axum:: middleware:: from_fn ( cache_control_middleware) ) ,
65
66
)
66
- . route ( "/: registry/: namespace/: package/" , get ( list_package) )
67
+ . route ( "/{ registry}/{ namespace}/{ package} /" , get ( list_package) )
67
68
. route (
68
- "/: registry/: namespace/: package/json" ,
69
+ "/{ registry}/{ namespace}/{ package} /json" ,
69
70
get ( list_package_json) ,
70
71
)
71
72
. route (
72
- "/: registry/: namespace/: package/: filename" ,
73
+ "/{ registry}/{ namespace}/{ package}/{ filename} " ,
73
74
get ( download_package) . delete ( delete_package_version) ,
74
75
)
75
76
. route (
76
- "/: registry/: namespace/" ,
77
+ "/{ registry}/{ namespace} /" ,
77
78
post ( publish_package) . layer ( DefaultBodyLimit :: max ( env. body_limit ) ) ,
78
79
) ;
79
80
let router = match env. path {
@@ -110,7 +111,7 @@ async fn cache_control_middleware(
110
111
/// Log incoming requests
111
112
async fn accesslog_middleware (
112
113
method : axum:: http:: Method ,
113
- host : Option < axum :: extract :: Host > ,
114
+ host : Result < Host , HostRejection > ,
114
115
uri : axum:: http:: Uri ,
115
116
headers : axum:: http:: HeaderMap ,
116
117
request : axum:: extract:: Request ,
@@ -125,7 +126,7 @@ async fn accesslog_middleware(
125
126
126
127
tracing:: debug!( "Accept: {:?}" , headers) ;
127
128
tracing:: info!(
128
- host = host. map( |value| value. 0 ) ,
129
+ host = host. map( |value| value. 0 ) . unwrap_or ( "" . to_string ( ) ) ,
129
130
"type" = "request" ,
130
131
status,
131
132
method = method. to_string( ) ,
0 commit comments