fromAsset static method

Future<ApiDefinition?> fromAsset(
  1. String assetPath, {
  2. String? baseUrl,
})

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;
  }
}