@@ -74,6 +74,19 @@ public async Task<string> GetOperationTagsAsync(string ApiManagementName, string
74
74
return await CallApiManagementAsync ( azToken , requestUrl ) ;
75
75
}
76
76
77
+ public async Task < string > GetAPIServiceUrl ( string ApiManagementName , string ResourceGroupName , string ApiName )
78
+ {
79
+ ( string azToken , string azSubId ) = await auth . GetAccessToken ( ) ;
80
+
81
+ string requestUrl = string . Format ( "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/apis/{4}?api-version={5}" ,
82
+ baseUrl , azSubId , ResourceGroupName , ApiManagementName , ApiName , GlobalConstants . APIVersion ) ;
83
+
84
+ string apiDetails = await CallApiManagementAsync ( azToken , requestUrl ) ;
85
+ JObject oApiDetails = JObject . Parse ( apiDetails ) ;
86
+ APITemplateResource apiResource = JsonConvert . DeserializeObject < APITemplateResource > ( apiDetails ) ;
87
+ return apiResource . properties . serviceUrl ;
88
+ }
89
+
77
90
public async Task < string > GetAPIDetailsAsync ( string ApiManagementName , string ResourceGroupName , string ApiName )
78
91
{
79
92
( string azToken , string azSubId ) = await auth . GetAccessToken ( ) ;
@@ -191,7 +204,7 @@ public async Task<string> GetAPISchemaDetailsAsync(string ApiManagementName, str
191
204
public async Task < List < TemplateResource > > GenerateSingleAPIResourceAsync ( string apiName , Extractor exc )
192
205
{
193
206
List < TemplateResource > templateResources = new List < TemplateResource > ( ) ;
194
- string apimname = exc . sourceApimName , resourceGroup = exc . resourceGroup , fileFolder = exc . fileFolder , policyXMLBaseUrl = exc . policyXMLBaseUrl , policyXMLSasToken = exc . policyXMLSasToken ;
207
+ string apimname = exc . sourceApimName , resourceGroup = exc . resourceGroup , fileFolder = exc . fileFolder , policyXMLBaseUrl = exc . policyXMLBaseUrl , policyXMLSasToken = exc . policyXMLSasToken ;
195
208
string apiDetails = await GetAPIDetailsAsync ( apimname , resourceGroup , apiName ) ;
196
209
197
210
Console . WriteLine ( "------------------------------------------" ) ;
@@ -207,6 +220,11 @@ public async Task<List<TemplateResource>> GenerateSingleAPIResourceAsync(string
207
220
apiResource . apiVersion = GlobalConstants . APIVersion ;
208
221
apiResource . scale = null ;
209
222
223
+ if ( exc . paramServiceUrl )
224
+ {
225
+ apiResource . properties . serviceUrl = $ "[parameters('serviceUrl').{ ExtractorUtils . GenValidApiParamName ( apiName ) } ]";
226
+ }
227
+
210
228
if ( apiResource . properties . apiVersionSetId != null )
211
229
{
212
230
apiResource . dependsOn = new string [ ] { } ;
@@ -468,7 +486,7 @@ public async Task<Template> GenerateAPIRevisionTemplateAsync(string currentRevis
468
486
{
469
487
// add other API revision resources to template
470
488
apiResources = await GenerateSingleAPIResourceAsync ( curApi , exc ) ;
471
-
489
+
472
490
// make current API a dependency to other revisions, in case destination apim doesn't have the this API
473
491
TemplateResource apiResource = apiResources . FirstOrDefault ( resource => resource . type == ResourceTypeConstants . API ) as TemplateResource ;
474
492
List < TemplateResource > newResourcesList = ExtractorUtils . removeResourceType ( ResourceTypeConstants . API , apiResources ) ;
@@ -504,6 +522,11 @@ public async Task<List<TemplateResource>> GenerateCurrentRevisionAPIResourceAsyn
504
522
apiResource . scale = null ;
505
523
apiResource . properties . isCurrent = null ;
506
524
525
+ if ( exc . paramServiceUrl )
526
+ {
527
+ apiResource . properties . serviceUrl = $ "[parameters('serviceUrl').{ ExtractorUtils . GenValidApiParamName ( apiName ) } ]";
528
+ }
529
+
507
530
if ( apiResource . properties . apiVersionSetId != null )
508
531
{
509
532
apiResource . dependsOn = new string [ ] { } ;
@@ -744,9 +767,8 @@ public async Task<List<TemplateResource>> GenerateCurrentRevisionAPIResourceAsyn
744
767
public async Task < Template > GenerateAPIsARMTemplateAsync ( string singleApiName , List < string > multipleApiNames , Extractor exc )
745
768
{
746
769
// initialize arm template
747
- Template armTemplate = GenerateEmptyTemplateWithParameters ( exc . policyXMLBaseUrl , exc . policyXMLSasToken ) ;
770
+ Template armTemplate = GenerateEmptyApiTemplateWithParameters ( exc ) ;
748
771
List < TemplateResource > templateResources = new List < TemplateResource > ( ) ;
749
-
750
772
// when extract single API
751
773
if ( singleApiName != null )
752
774
{
0 commit comments