validate_path

Function validate_path 

Source
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