|
22.07.2017, 14:17 | #1 |
Участник
|
goshoom: Discovery of JSON-based custom services in AX 7
Источник: http://dev.goshoom.net/en/2017/07/di...vices-in-ax-7/
============== If you download AX integration samples from GitHub, you’ll see (in JsonConsoleApplication project) that you can call JSON-based custom services by code like this: var request = HttpWebRequest.Create(ClientConfiguration.Default.UriString + "api/services/UserSessionService/AifUserSessionService/GetUserSessionInfo");request.Headers[OAuthHelper.OAuthHeader] = OAuthHelper.GetAuthenticationHeader();request.Method = "POST";request.GetResponse(); It will call the operation and return its return value as JSON: { "$id":"1", "AOSLocaleName":"en-US", "AXLanguage":"EN-US", "Company":"DAT", "CompanyTimeZone":58, "CurrencyInfo": { "$id":"2", "CurrencyCode":"USD", "Description":"US Dollar", "ExchangeRate":100.0, "ISOCurrencyCode":"USD", "Prefix":"","Suffix":"" }, "IsSysAdmin":true, "UserId":"wintermute", "UserPreferredCalendar":0, "UserPreferredTimeZone":18} This is what happens when you use the POST method of HTTP; if you switch to GET, you’ll actually get some information about the service. Therefore if you merely change the value of request.Method: var request = HttpWebRequest.Create(ClientConfiguration.Default.UriString + "api/services/UserSessionService/AifUserSessionService/GetUserSessionInfo");request.Headers[OAuthHelper.OAuthHeader] = OAuthHelper.GetAuthenticationHeader();request.Method = "GET";request.GetResponse();you’ll get a very different response: { "Parameters":[], "Return": { "Name":"return", "Type":"AifUserSessionInfo" }} You can see that the operation doesn’t expect any parameters and it returns a single object of AifUserSessionInfo type. This gives you some limited information about how to use this service. You can also use GET requests to discover existing services and their operations. /api/services gives you a list of all service groups: {"ServiceGroups":[{"Name":"AxClient"},…,{"Name":"UserSessionService"}…]} /api/services/UserSessionService provides a list of services in the service group: {"Services":[{"Name":"AifUserSessionService"}]} /api/services/UserSessionService/AifUserSessionService shows all operations of the individual service: { "Operations": [ {"Name":"ApplyTimeZone"}, {"Name":"GetAccessRights"}, {"Name":"GetPartitionKey"}, {"Name":"GetPartitionKeysForUser"}, {"Name":"GetUserSessionInfo"}, {"Name":"IsSinglePartitionSystem"}, {"Name":"RemoveTimeZone"} ]} Don’t forget than opening an URL in browser makes a GET request, therefore you don’t have to write any code to get this kind of information about custom services. But maybe you would like something a bit more sophisticated, which is the topic of the next post: Open API for JSON-based custom services in AX 7. Источник: http://dev.goshoom.net/en/2017/07/di...vices-in-ax-7/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
|
|