Dynamics 365 Admin API

Online Management API, Office 365 hesabınızla Ortak Veri Hizmeti (Common Data Services) ortamları oluşturmanıza ve yönetmenize olanak tanıyan bir REST API’dır.

  • Bu API, normalde Dynamics 365 Yönetim Merkezi ile ilişkilendirilmiş yönetim işlevlerini API üzerinden gerçekleştirmenize olanak tanır.
  • Admin API’ın bir diğer önemli avantajı, yedekleme ve geri yükleme işlemleriniz üzerinde daha fazla denetime sahip olmanıza ve ALM işlemlerinizi otomatikleştirmenize izin vermesidir.

Servis URL

Servis URL aşağıdaki gibi bir yapıya sahiptir, ama bunu ezberlemenize gerek yok;

{ServiceUrl}/api/v1.2/{resource}

Çünkü https://admin.services.crm4.dynamics.com/swagger/ui/index adresi üzerinden API arabirimine bağlanıp detaylı bilgi alıp işlemleri orada yapabilirsiniz.

Burada tek dikkat edilmesi gereken nokta ise bu API aşağıdaki tablodan da görebileceğiniz üzere instance bazlı hizmet vermektedir.

LocationService URL
North Americahttps://admin.services.crm.dynamics.com
North America 2https://admin.services.crm9.dynamics.com
Europe, Middle East and Africa (EMEA)https://admin.services.crm4.dynamics.com
Asia Pacific (APAC)https://admin.services.crm5.dynamics.com
Oceaniahttps://admin.services.crm6.dynamics.com
Japan (JPN)https://admin.services.crm7.dynamics.com
South Americahttps://admin.services.crm2.dynamics.com
India (IND)https://admin.services.crm8.dynamics.com
Canadahttps://admin.services.crm3.dynamics.com
United Kingdom (UK)https://admin.services.crm11.dynamics.com
Francehttps://admin.services.crm12.dynamics.com
Dynamics 365 Admin API
Dynamics 365 Admin API

Bu tool bir Web API olduğu için herhangi bir kod içerisinden de çağırabilirsiniz. Aşağıdaki kod ile instance’ları alabilrsiniz

HttpRequestMessage myRequest = new HttpRequestMessage(HttpMethod.Get, "/api/v1/instances"); 
HttpResponseMessage myResponse = await httpClient.SendAsync(myRequest); 
if (myResponse.IsSuccessStatusCode) { 
    var result = myResponse.Content.ReadAsStringAsync().Result; 	
    Console.WriteLine("Your instances retrieved from Office 365 tenant: \n{0}", result); 
} 
else 
{ 
    Console.WriteLine("The request failed with a status of '{0}’”, 	myResponse.ReasonPhrase); 
}

Ayrıca Microsoft bu API için bir de PowerShell arabirimi de sunuyor. Aşağıdaki adresten indireceğiniz paket ile PowerShell esnekliğini kullanarak çözümler üretebilirsiniz.

https://www.powershellgallery.com/packages/Microsoft.Xrm.OnlineManagementAPI/1.1.0.9051

$user = “admin@sfa.contoso.onmicrosoft.com”
$password = “password”

 #Create Credentials
$SecPassword = ConvertTo-SecureString $password -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($user, $SecPassword)

$connectionhost = "https://admin.service.crm11.dynamics.com"

$instances = Get-CrmInstances -ApiUrl $connectionhost -Credential $cred
$instances 

Yukarıdaki kod da size instance’ların ismini verecektir.

Bu şekilde instance detaylarına ulaşabilir kendinize yeni ortamları otomatik oluşturup/silebilir, yedek alabilir vs.. birçok işlemi yapabilirsiniz.

Daha fazla bilgiye şu iki makaleden ulaşabilirsiniz;

https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/online-management-api/overview

https://docs.microsoft.com/en-us/rest/api/admin.services.crm.dynamics.com/