我正在使用VB.NET来处理Magento API。我成功使用SOAP v1,直到遇到需要关联数组的调用。经过一天左右的运气,我决定尝试使用我需要的所有物品的v2。 v2工作但非常非常慢。要更新一个库存项目库存,大约需要一分半钟才能登录并进行更新,而v1则可能少于10秒。这让我想起了为什么我首先选择了v1。
我的问题是,无论如何都要提高v2的性能。我无法想象我需要它的程度,但我想我会问。我已经启用了缓存。如果可能的话,让v1接受关联数组的替代方案似乎是一个挑战。
答案 0 :(得分:22)
WSDL请求可能需要很长时间才有很多原因,但我要检查的第一件事是 WSDL 缓存的设置。当您对Magento进行API调用时,Magento使用PHP的SoapServer
对象。 SoapServer
对象需要获取自己的WSDL文件才能运行,生成和获取此文件可能是一件很费时间的事情。
转到
System -> Configuration -> Magento Core API -> General Settings
并查找“启用WSDL缓存”。将此设置为yes,您将看到一些API性能改进。
您的Magento版本可能不存在此设置 - 如果是这种情况,您可能会对Mercury API扩展程序(由我创建和销售)感兴趣,其API改进包括旧版Magento的此功能。如果您没有扩展预算,Mage_Api_Model_Server_Adapter_Soap
是旧版Magento禁用此缓存的类。