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

Commit eda48d4

Browse files
zhonrenRupengLiu
andauthored
Parameter ServiceUrl in creator (#525)
* Parameter ServiceUrl in creator * Change param to apiname-serviceUrl * Fix test bug Co-authored-by: RupengLiu <rliu1211@terpmail.umd.edu>
1 parent 0f129dc commit eda48d4

File tree

5 files changed

+27
-3
lines changed

5 files changed

+27
-3
lines changed

src/APIM_ARMTemplate/apimtemplate.test/Creator/TemplateCreatorTests/APITemplateCreatorTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public async void ShouldCreateInitialAPITemplateResourceFromCreatorConfig()
2323
apiVersionSetId = "apiVersionSetId",
2424
apiRevision = "revision",
2525
apiRevisionDescription = "revisionDescription",
26+
serviceUrl = "http://serviceUrl",
2627
suffix = "suffix",
2728
subscriptionRequired = true,
2829
authenticationSettings = new APITemplateAuthenticationSettings()
@@ -51,7 +52,7 @@ public async void ShouldCreateInitialAPITemplateResourceFromCreatorConfig()
5152

5253
// assert
5354
Assert.Equal($"[concat(parameters('ApimServiceName'), '/{api.name}')]", apiTemplateResource.name);
54-
Assert.Equal($"[parameters('{ParameterNames.ServiceUrl}').{api.name}]", apiTemplateResource.properties.serviceUrl);
55+
Assert.Equal($"[parameters('{api.name}-ServiceUrl')]", apiTemplateResource.properties.serviceUrl);
5556
Assert.Equal(api.name, apiTemplateResource.properties.displayName);
5657
Assert.Equal(api.apiVersion, apiTemplateResource.properties.apiVersion);
5758
Assert.Equal(api.apiVersionDescription, apiTemplateResource.properties.apiVersionDescription);

src/APIM_ARMTemplate/apimtemplate/Commands/Create.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,10 @@ public CreateCommand()
139139
{
140140
if (considerAllApiForDeployments || preferredApis.Contains(api.name))
141141
{
142+
if (creatorConfig.serviceUrlParameters != null && creatorConfig.serviceUrlParameters.Count > 0) {
143+
api.serviceUrl = creatorConfig.serviceUrlParameters.Any(s => s.apiName.Equals(api.name)) ?
144+
creatorConfig.serviceUrlParameters.Where(s => s.apiName.Equals(api.name)).FirstOrDefault().serviceUrl : api.serviceUrl;
145+
}
142146
// create api templates from provided api config - if the api config contains a supplied apiVersion, split the templates into 2 for metadata and swagger content, otherwise create a unified template
143147
List<Template> apiTemplateSet = await apiTemplateCreator.CreateAPITemplatesAsync(api);
144148
apiTemplates.AddRange(apiTemplateSet);

src/APIM_ARMTemplate/apimtemplate/Creator/Models/CreatorConfiguration.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public class CreatorConfig
3434
public string linkedTemplatesBaseUrl { get; set; }
3535
public string linkedTemplatesUrlQueryString { get; set; }
3636
public string baseFileName { get; set; }
37+
public List<ServiceUrlProperty> serviceUrlParameters { get; set; }
3738
}
3839

3940
public class APIVersionSetConfig : APIVersionSetProperties
@@ -127,4 +128,9 @@ public class SubscriptionConfig : SubscriptionsTemplateProperties
127128
public string name { get; set; }
128129
}
129130

131+
public class ServiceUrlProperty
132+
{
133+
public string apiName { get; set; }
134+
public string serviceUrl { get; set; }
135+
}
130136
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public async Task<Template> CreateAPITemplateAsync(APIConfig api, bool isSplit,
7171

7272
if (!String.IsNullOrEmpty(api.serviceUrl))
7373
{
74-
apiTemplate.parameters.Add(ParameterNames.ServiceUrl, new TemplateParameterProperties() { type = "string" });
74+
apiTemplate.parameters.Add(api.name + "-ServiceUrl", new TemplateParameterProperties() { type = "string" });
7575
}
7676

7777
List<TemplateResource> resources = new List<TemplateResource>();
@@ -330,7 +330,7 @@ public bool isSplitAPI(APIConfig apiConfig)
330330

331331
private string MakeServiceUrl(APIConfig api)
332332
{
333-
return api.serviceUrl ?? $"[parameters('{ParameterNames.ServiceUrl}').{ExtractorUtils.GenValidParamName(api.name, ParameterPrefix.Api)}]";
333+
return !String.IsNullOrEmpty(api.serviceUrl) ? $"[parameters('{api.name + "-ServiceUrl"}')]" : null;
334334
}
335335
}
336336
}

src/APIM_ARMTemplate/apimtemplate/Creator/TemplateCreators/MasterTemplateCreator.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,19 @@ public Template CreateMasterTemplateParameterValues(CreatorConfig creatorConfig)
301301
parameters.Add(ParameterNames.LinkedTemplatesUrlQueryString, linkedTemplatesUrlQueryStringProperties);
302302
}
303303
}
304+
305+
if (creatorConfig.serviceUrlParameters != null && creatorConfig.serviceUrlParameters.Count > 0)
306+
{
307+
foreach (ServiceUrlProperty serviceUrlProperty in creatorConfig.serviceUrlParameters)
308+
{
309+
TemplateParameterProperties serviceUrlParamProperty = new TemplateParameterProperties()
310+
{
311+
value = serviceUrlProperty.serviceUrl
312+
};
313+
parameters.Add(serviceUrlProperty.apiName + "-ServiceUrl", serviceUrlParamProperty);
314+
}
315+
}
316+
304317
masterTemplate.parameters = parameters;
305318
return masterTemplate;
306319
}

0 commit comments

Comments
 (0)