swagger_generator_flutter/lib/validators/rules/info_rules.dart

58 lines
1.6 KiB
Dart

import 'package:swagger_generator_flutter/validators/core/validation_context.dart';
import 'package:swagger_generator_flutter/validators/core/validation_result.dart';
import 'package:swagger_generator_flutter/validators/core/validation_rule.dart';
/// API 基本信息验证规则
class InfoValidationRule extends ValidationRule {
@override
String get id => 'info_validation';
@override
String get name => 'API 基本信息验证';
@override
ValidationResult validate(ValidationContext context) {
final document = context.document;
final errors = <ValidationError>[];
final warnings = <ValidationWarning>[];
if (document.title.isEmpty) {
errors.add(
const ValidationError(
path: 'info.title',
message: 'API 标题不能为空',
type: ValidationErrorType.required,
suggestion: '请提供有意义的 API 标题',
),
);
}
if (document.version.isEmpty) {
errors.add(
const ValidationError(
path: 'info.version',
message: 'API 版本不能为空',
type: ValidationErrorType.required,
suggestion: '请使用语义化版本号,如 "1.0.0"',
),
);
}
if (document.description.isEmpty) {
warnings.add(
const ValidationWarning(
path: 'info.description',
message: 'API 描述为空',
suggestion: '建议添加 API 的详细描述',
),
);
}
return ValidationResult(
isValid: errors.isEmpty,
errors: errors,
warnings: warnings,
);
}
}