在AX 2012中,如何将WCF服务公开为REST

rob*_*ar2 4 rest web-services ax axapta dynamics-ax-2012

现在我正在公开AX 2012的服务,如何配置它以将其公开为REST?

我必须在MAC Xcode中使用此服务进行IOS集成,我相信如果它是REST而不是SOAP,它很容易.

Ken*_*len 6

好吧,有一个有趣的问题,但没有直截了当的答案:(

我想说没有简单明了的方法将您的Axe WCF服务公开为REST,但有一些解决方法.这就是我要做的.

您可以创建自己的ASP.NET WebAPI项目,该项目可以托管在IIS上,也可以托管在服务或可执行文件中.(WebAPI网站教程创建一个简单的WebAPI项目).此WebAPI项目实际上使用ASP.NET MVC 4.0,因此您可以创建控制器以包含获取数据的逻辑.

在教程中,他们正在加载产品,在控制器中,数组用于演示目的.

Product[] products = new Product[] 
    { 
        new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 }, 
        new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M }, 
        new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M } 
    };
Run Code Online (Sandbox Code Playgroud)

那么,现在您可以做的是通过对Ax WCF服务的服务调用来替换它.通过这样做,外部用户实际上可以向您的WebAPI站点发出HTTP请求,WebAPI将为您处理所有路由并返回JSON格式.

例如:

  • "HTTP://本地主机:XXXX/API /产品/ 1"
  • "HTTP://本地主机:XXXX/API /产品类别=硬件"

在后台,控制器本身可以使用带WCF的SOAP方式对Ax进行服务调用.