我尝试创建一个soap服务,但不知何故,它的wsdl url无法正常工作。以下是代码: - API / CustomapitInterface.php
namespace W3solver\Customapi\Api;
interface CustomapiInterface
{
/**
* Returns greeting message to user
*
* @api
* @param string $name Users name.
* @return string Greeting message with users name.
*/
public function name($name);
}
模型/ Customapi.php
<?php
namespace W3solver\Customapi\Model;
use W3solver\Customapi\Api\CustomapiInterface;
class Customapi implements CustomapiInterface
{
/**
* Returns greeting message to user
*
* @api
* @param string $name Users name.
* @return string Greeting message with users name.
*/
public function name($name) {
return "Hello, " . $name;
}
}
等/ di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="W3solver\Customapi\Api\CustomapiInterface" type="W3solver\Customapi\Model\Customapi" />
</config>
等/ module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="W3solver_Customapi" setup_version="1.0.0" />
</config>
等/ webapi.xml
<?xml version="1.0"?>
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd">
<route url="/V1/customapi/name/:name" method="GET">
<service class="W3solver\Customapi\Api\CustomapiInterface" method="name"/>
<resources>
<resource ref="anonymous"/>
</resources>
</route>
</routes>
我是通过使用来自http://inchoo.net/magento/api-magento/magento-2-custom-api/的引用来创建的。我没有出错。
以下是我尝试使用的网址: - http://magento2.local/index.php/soap/default?wsdl&services=w3solverCustomapiV1
答案 0 :(得分:1)
Magento 2默认禁用对匿名API的API访问,您需要从后端管理面板启用此功能。
要停用此功能,请登录管理面板,然后导航至商店&gt;配置&gt;服务&gt; Magento Web API&gt; Web API安全性。然后从“允许匿名访客访问”菜单中选择“是”。
您可以找到有关开发指南here的更多信息。