fromAsset static method
Loads an OpenAPI definition from an asset file.
assetPath - Path to the asset file (e.g., 'assets/api/openapi.json' or 'assets/api/openapi.yaml')
baseUrl - Optional base URL override
Automatically detects JSON or YAML format based on file extension. Returns an ApiDefinition or null if loading/parsing fails.
Implementation
static Future<ApiDefinition?> fromAsset(String assetPath, {String? baseUrl}) async {
try {
final content = await rootBundle.loadString(assetPath);
final extension = assetPath.toLowerCase().split('.').last;
if (extension == 'yaml' || extension == 'yml') {
return fromYamlString(content, baseUrl: baseUrl);
} else {
// Default to JSON parsing for .json or unknown extensions
return fromJsonString(content, baseUrl: baseUrl);
}
} catch (e) {
debugPrint('Error loading OpenAPI from asset: $e');
return null;
}
}