Map<String, dynamic> asMap({String version: "2.0" })

Source

Map<String, dynamic> asMap({String version: "2.0"}) {
  var m = <String, dynamic>{};

  if (version.startsWith("2.")) {
    m["swagger"] = version;
  } else {
    m["openapi"] = version;
  }
  m["info"] = info.asMap();

  if (version.startsWith("2.")) {
    if ((hosts?.length ?? 0) > 0) {
      m["host"] = hosts.first.host;
    }
  } else {
    m["hosts"] = hosts?.map((host) => host.asMap())?.toList();
  }

  m["consumes"] = consumes.map((ct) => ct.toString()).toList();
  m["produces"] = produces.map((ct) => ct.toString()).toList();
  m["security"] = securityRequirements.map((sec) => sec.name).toList();
  m["paths"] = new Map.fromIterable(paths,
      key: (APIPath k) => k.path, value: (APIPath v) => v.asMap());

  var mappedSchemes = {};
  securitySchemes?.forEach((k, scheme) {
    mappedSchemes[k] = scheme.asMap();
  });
  m["securityDefinitions"] = mappedSchemes;

  return _stripNullAndEmpty(m);
}