Skip to content
This repository was archived by the owner on Feb 23, 2024. It is now read-only.

Commit 904c82b

Browse files
committed
Started Operations Feature
1 parent e61420a commit 904c82b

File tree

7 files changed

+12
-109
lines changed

7 files changed

+12
-109
lines changed

example/api-httpbin/v1/api-httpbin.v1.template.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
],
3232
"authenticationSettings": null,
3333
"subscriptionKeyParameterNames": null,
34-
"apiVersion": "v2",
34+
"apiVersion": "v1",
3535
"apiVersionSetId": "[concat(resourceId('Microsoft.ApiManagement/service', parameters('ApimServiceName')), '/api-version-sets/versionset-httpbin-api')]"
3636
}
3737
},

example/api-httpbin/v1/api-httpbin.v1.template2.json

Lines changed: 0 additions & 40 deletions
This file was deleted.

example/service.parameters.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"contentVersion": "1.0.0.0",
55
"parameters": {
66
"publisherEmail": {
7-
"value": "odaibert@microsoft.com"
7+
"value": "admin@contoso.com"
88
},
99
"publisherName": {
10-
"value": "odaibert"
10+
"value": "Contoso"
1111
},
1212
"ApimServiceName": {
13-
"value": "odaibert-deploy2"
13+
"value": "contosoapim-dev"
1414
}
1515
}
1616
}

src/APIM_ARMTemplate/apimtemplate/Commands/Extract.cs

Lines changed: 5 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ public ExtractCommand()
4545
apimServiceName = apimname,
4646
api = apiConfig
4747
};
48-
creatorConfig.api.openApiSpec = "2.0";
48+
creatorConfig.api.openApiSpec = "{\"swagger\":\"2.0\",\"info\":{\"version\":\"1.0.0\",\"title\":\"Swagger Petstore\",\"description\":\"A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification\",\"termsOfService\":\"http://swagger.io/terms/\",\"contact\":{\"name\":\"Swagger API Team\",\"email\":\"apiteam@swagger.io\",\"url\":\"http://swagger.io\"},\"license\":{\"name\":\"Apache 2.0\",\"url\":\"https://www.apache.org/licenses/LICENSE-2.0.html\"}},\"host\":\"petstore.swagger.io\",\"basePath\":\"/api\",\"schemes\":[\"http\"],\"consumes\":[\"application/json\"],\"produces\":[\"application/json\"],\"paths\":{\"/pets\":{\"get\":{\"description\":\"Returns all pets from the system that the user has access to\\nNam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia.\\n\\nSed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien.\\n\",\"operationId\":\"findPets\",\"parameters\":[{\"name\":\"tags\",\"in\":\"query\",\"description\":\"tags to filter by\",\"required\":false,\"type\":\"array\",\"collectionFormat\":\"csv\",\"items\":{\"type\":\"string\"}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"maximum number of results to return\",\"required\":false,\"type\":\"integer\",\"format\":\"int32\"}],\"responses\":{\"200\":{\"description\":\"pet response\",\"schema\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/Pet\"}}},\"default\":{\"description\":\"unexpected error\",\"schema\":{\"$ref\":\"#/definitions/Error\"}}}},\"post\":{\"description\":\"Creates a new pet in the store. Duplicates are allowed\",\"operationId\":\"addPet\",\"parameters\":[{\"name\":\"pet\",\"in\":\"body\",\"description\":\"Pet to add to the store\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/NewPet\"}}],\"responses\":{\"200\":{\"description\":\"pet response\",\"schema\":{\"$ref\":\"#/definitions/Pet\"}},\"default\":{\"description\":\"unexpected error\",\"schema\":{\"$ref\":\"#/definitions/Error\"}}}}},\"/pets/{id}\":{\"get\":{\"description\":\"Returns a user based on a single ID, if the user does not have access to the pet\",\"operationId\":\"find pet by id\",\"parameters\":[{\"name\":\"id\",\"in\":\"path\",\"description\":\"ID of pet to fetch\",\"required\":true,\"type\":\"integer\",\"format\":\"int64\"}],\"responses\":{\"200\":{\"description\":\"pet response\",\"schema\":{\"$ref\":\"#/definitions/Pet\"}},\"default\":{\"description\":\"unexpected error\",\"schema\":{\"$ref\":\"#/definitions/Error\"}}}},\"delete\":{\"description\":\"deletes a single pet based on the ID supplied\",\"operationId\":\"deletePet\",\"parameters\":[{\"name\":\"id\",\"in\":\"path\",\"description\":\"ID of pet to delete\",\"required\":true,\"type\":\"integer\",\"format\":\"int64\"}],\"responses\":{\"204\":{\"description\":\"pet deleted\"},\"default\":{\"description\":\"unexpected error\",\"schema\":{\"$ref\":\"#/definitions/Error\"}}}}}},\"definitions\":{\"Pet\":{\"type\":\"object\",\"allOf\":[{\"$ref\":\"#/definitions/NewPet\"},{\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int64\"}}}]},\"NewPet\":{\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"type\":\"string\"},\"tag\":{\"type\":\"string\"}}},\"Error\":{\"type\":\"object\",\"required\":[\"code\",\"message\"],\"properties\":{\"code\":{\"type\":\"integer\",\"format\":\"int32\"},\"message\":{\"type\":\"string\"}}}}}";
4949
creatorConfig.api.name = extractedAPI.value[i].name;
5050
creatorConfig.api.apiVersion = extractedAPI.value[i].properties.apiVersion;
5151
creatorConfig.api.apiVersionDescription = extractedAPI.value[i].properties.apiVersionDescription;
5252
creatorConfig.api.suffix = extractedAPI.value[i].properties.path;
53-
creatorConfig.linked = false;
53+
creatorConfig.linked = true;
5454

5555
Dictionary<string, OperationsConfig> operationsDic = new Dictionary<string, OperationsConfig>();
5656
//operation list
@@ -110,8 +110,8 @@ public ExtractCommand()
110110
}
111111
fileWriter.WriteJSONToFile(initialAPITemplate, string.Concat(creatorConfig.outputLocation, creatorFileNames.initialAPI));
112112
fileWriter.WriteJSONToFile(subsequentAPITemplate, string.Concat(creatorConfig.outputLocation, creatorFileNames.subsequentAPI));
113-
fileWriter.WriteJSONToFile(masterTemplate, string.Concat(creatorConfig.outputLocation, "/master.template.json"));
114-
fileWriter.WriteJSONToFile(masterTemplateParameters, string.Concat(creatorConfig.outputLocation, "/master.parameters.json"));
113+
fileWriter.WriteJSONToFile(masterTemplate, string.Concat(creatorConfig.outputLocation, creatorConfig.api.name, "-master.template.json"));
114+
fileWriter.WriteJSONToFile(masterTemplateParameters, string.Concat(creatorConfig.outputLocation, creatorConfig.api.name, "-master.parameters.json"));
115115
}
116116
else
117117
{
@@ -128,60 +128,4 @@ public ExtractCommand()
128128
});
129129
}
130130
}
131-
}
132-
133-
// for (int i = 0; i<extractedAPI.value.Count; i++)
134-
// {
135-
// APIConfig apiConfig = new APIConfig();
136-
137-
//CreatorConfig creatorConfig = new CreatorConfig
138-
//{
139-
// version = "1.0.0",
140-
// outputLocation = @"",
141-
// apimServiceName = apimname,
142-
// api = apiConfig
143-
//};
144-
//creatorConfig.api.openApiSpec = null;
145-
// creatorConfig.api.name = extractedAPI.value[i].name;
146-
// creatorConfig.api.apiVersion = extractedAPI.value[i].properties.apiVersion;
147-
// creatorConfig.api.apiVersionDescription = extractedAPI.value[i].properties.apiVersionDescription;
148-
// creatorConfig.api.suffix = extractedAPI.value[i].properties.path;
149-
// creatorConfig.linked = false;
150-
151-
// if (extractedAPI.value[i].properties.apiVersionSetId != null)
152-
// {
153-
// string APIVersionSetFull = extractedAPI.value[i].properties.apiVersionSetId;
154-
//string APIVersionSetId = APIVersionSetFull.Substring(APIVersionSetFull.LastIndexOf('/') + 1);
155-
//APIVersionSetId = api.GetAPIVersionSet(apimname, resourceGroup, APIVersionSetId).Result;
156-
// APIVersionSetTemplateResource apiv = JsonConvert.DeserializeObject<APIVersionSetTemplateResource>(APIVersionSetId);
157-
158-
//creatorConfig.apiVersionSet = apiv.properties;
159-
// }
160-
161-
// TemplateCreator templateCreator = new TemplateCreator();
162-
//APIVersionSetTemplateCreator apiVersionSetTemplateCreator = new APIVersionSetTemplateCreator(templateCreator);
163-
//ProductAPITemplateCreator productAPITemplateCreator = new ProductAPITemplateCreator();
164-
////PolicyTemplateCreator policyTemplateCreator = new PolicyTemplateCreator(fileReader);
165-
//APITemplateCreator apiTemplateCreator = new APITemplateCreator(templateCreator);
166-
////MasterTemplateCreator masterTemplateCreator = new MasterTemplateCreator(templateCreator);
167-
168-
//// create templates from provided configuration
169-
//Template apiVersionSetTemplate = creatorConfig.apiVersionSet != null ? apiVersionSetTemplateCreator.CreateAPIVersionSetTemplate(creatorConfig) : null;
170-
//Template apiTemplate = await apiTemplateCreator.CreateAPITemplateAsync(creatorConfig);
171-
172-
//FileWriter fileWriter = new FileWriter();
173-
//CreatorFileNames creatorFileNames = fileWriter.GenerateCreatorFileNames();
174-
175-
// if (extractedAPI.value[i].properties.apiVersionSetId != null)
176-
// {
177-
// Console.WriteLine("Writing API Version Set File for {0} API ...", extractedAPI.value[i].name);
178-
// fileWriter.WriteJSONToFile(apiVersionSetTemplate, String.Concat(creatorConfig.outputLocation, extractedAPI.value[i].name, "-", creatorFileNames.apiVersionSet));
179-
// }
180-
// else Console.WriteLine("{0} has no API version set.", extractedAPI.value[i].name);
181-
182-
// Console.WriteLine("Writing API File for {0} API ...", extractedAPI.value[i].name);
183-
// fileWriter.WriteJSONToFile(apiTemplate, String.Concat(creatorConfig.outputLocation, extractedAPI.value[i].name, "-", creatorFileNames.initialAPI));
184-
// }
185-
// Console.WriteLine("All files are saved on {0} folder! Press any key.", Directory.GetCurrentDirectory());
186-
// Console.ReadKey();
187-
// return 0;
131+
}

src/APIM_ARMTemplate/apimtemplate/Extractor/TemplateCreators/APITemplateCreator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ public async Task<APITemplateResource> CreateSubsequentAPITemplateResourceAsync(
129129
properties = new APITemplateProperties()
130130
{
131131
contentFormat = "swagger-json",
132-
contentValue = null,//JsonConvert.SerializeObject(deserializedFileContents),
132+
contentValue = "{\"swagger\":\"2.0\"}", //JsonConvert.SerializeObject(deserializedFileContents),
133133
// supplied via optional arguments
134134
path = creatorConfig.api.suffix
135135
},

src/APIM_ARMTemplate/apimtemplate/Program.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using System.Threading.Tasks;
32
using Colors.Net;
43
using McMaster.Extensions.CommandLineUtils;
54
using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extract;
@@ -43,4 +42,4 @@ public static int Main(string[] args)
4342
}
4443
}
4544
}
46-
}
45+
}

src/APIM_ARMTemplate/apimtemplate/Properties/launchSettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"profiles": {
33
"apimtemplate": {
44
"commandName": "Project",
5-
"commandLineArgs": "extract --name odaibert-deploy2 --resourceGroup APIM-Extractor"
5+
"commandLineArgs": "extract --name apim-extractor --resourceGroup APIM-Extractor"
66
}
77
}
88
}

0 commit comments

Comments
 (0)