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

Web services 在AX 2012中,如何将WCF服务公开为REST,web-services,rest,axapta,dynamics-ax-2012,ax,Web Services,Rest,Axapta,Dynamics Ax 2012,Ax,现在我正在公开AX 2012的服务,如何配置它以将其公开为REST 我必须在MacxCode中使用这项服务来集成IOS,我相信如果它是REST而不是SOAP,那就很容易了 有一个有趣的问题,但没有直接的答案:( 我想说的是,没有简单易行的方法可以将您的Ax WCF服务公开为REST,但有一些变通方法 您可以创建自己的ASP.NET WebAPI项目,该项目可以托管在IIS上,也可以在服务或可执行文件中自托管。(并创建一个简单的WebAPI项目)。此WebAPI项目实际上使用ASP.NET MVC

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


我必须在MacxCode中使用这项服务来集成IOS,我相信如果它是REST而不是SOAP,那就很容易了

有一个有趣的问题,但没有直接的答案:(

我想说的是,没有简单易行的方法可以将您的Ax WCF服务公开为REST,但有一些变通方法

您可以创建自己的ASP.NET WebAPI项目,该项目可以托管在IIS上,也可以在服务或可执行文件中自托管。(并创建一个简单的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 } 
    };
好的,现在你可以做的是用对Ax WCF服务的服务调用来代替它。通过这样做,外部用户实际上可以对你的WebAPI站点执行HTTP请求,WebAPI将为你处理所有路由并返回JSON格式

例如:

  • "http://localhost:xxxx/api/products/1"
  • "http://localhost:xxxx/api/products?category=hardware"

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

您好,谢谢您的评论。我正在读您的书,很好:)您好,Vasanth,您将服务作为REST公开了吗?如果您仍然有疑问,请发问:-)当直接进入AX而不存在IIS时,这种代理方法是处理NetTCP需求的常用方法。