in src/Microsoft.Atlas.CommandLine/Commands/SwaggerCommands.cs [30:71]
public async Task<int> ExecutePreview()
{
var specsUrl = Specs.Required();
var specsJson = await new HttpClient().GetStringAsync(specsUrl);
var specs = _serializers.YamlDeserializer.Deserialize<Swagger.Models.SwaggerDocument>(specsJson);
var refParameters = specs.parameters.ToDictionary(p => $"#/parameters/{p.Key}", p => p.Value);
foreach (var pathEntry in specs.paths)
{
var path = pathEntry.Key;
var pathItem = pathEntry.Value;
for (var index = 0; index < pathItem.parameters.Count(); ++index)
{
if (pathItem.parameters[index].@ref != null)
{
pathItem.parameters[index] = refParameters[pathItem.parameters[index].@ref];
}
}
foreach (var operationEntry in pathEntry.Value.operations)
{
var context = new Swagger.GenerateSingleRequestDefinitionContext
{
SwaggerDocument = specs,
Path = pathEntry,
Operation = operationEntry,
SwaggerReference = new Blueprints.Models.SwaggerReference
{
target = "api/azure",
},
};
var generator = new Swagger.RequestGenerator(new YamlSerializers());
generator.GenerateSingleRequestDefinition(context);
Console.WriteLine(context.GeneratedPath);
Console.WriteLine(context.GeneratedContent);
}
}
return 0;
}