pub fn validate_path(path: &str) -> Result<(), PathValidationError>Expand description
Validate route path syntax
Returns Ok(()) if the path is valid, or Err with a descriptive error.
§Valid paths
- Must start with ‘/’
- Can contain alphanumeric characters, ‘-’, ‘_’, ‘.’, ‘/’
- Can contain path parameters in the form
{param_name} - Parameter names must be valid identifiers (alphanumeric + underscore, not starting with digit)
§Invalid paths
- Paths not starting with ‘/’
- Paths with empty segments (double slashes like ‘//’)
- Paths with unclosed or nested braces
- Paths with empty parameter names like ‘{}’
- Paths with invalid parameter names
- Paths with invalid characters
§Examples
use rustapi_core::path_validation::validate_path;
// Valid paths
assert!(validate_path("/").is_ok());
assert!(validate_path("/users").is_ok());
assert!(validate_path("/users/{id}").is_ok());
assert!(validate_path("/users/{user_id}/posts/{post_id}").is_ok());
// Invalid paths
assert!(validate_path("users").is_err()); // Missing leading /
assert!(validate_path("/users//posts").is_err()); // Double slash
assert!(validate_path("/users/{").is_err()); // Unclosed brace
assert!(validate_path("/users/{}").is_err()); // Empty parameter
assert!(validate_path("/users/{123}").is_err()); // Parameter starts with digit