Custom API for Magento 2
Custom API for Magento 2
Custom API for Magento 2
API stands for Application Programming Interface which allow you access the data from an application.
Two kinds of the web APIs:
REST (Representational State Transfer)
SOAP (Simple Object Access Protocol).
How to create custom API Module:
Magento 2. To generate access token inside for your Magento 2 store navigate to System -> Extensions -> Integrations and generate it.
etc/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=”Latestblog_Hello” setup_version=”1.0.0″ />
</config>
Registration – registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
‘Latestblog_Hello’,
__DIR__
);
Web API configuration – etc/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/hello/name/:name” method=”GET”>
<service class=”Latestblog\Hello\Api\HelloInterface” method=”name”/>
<resources>
<resource ref=”anonymous”/>
</resources>
</route>
</routes>
etc/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=”Latestblog\Hello\Api\HelloInterface”
type=”Latestblog\Hello\Model\Hello” />
</config>
Interface – Api/HelloInterface.php
<?php
namespace Latestblog\Hello\Api;
interface HelloInterface
{
/**
* Returns greeting message to user
*
* @api
* @param string $name Users name.
* @return string Greeting message with users name.
*/
public function name($name);
}
Model – Model/Hello.php
<?php
namespace Latestblog\Hello\Model;
use Latestblog\Hello\Api\HelloInterface;
class Hello implements HelloInterface
{
/**
* 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;
}
}
By using postman check data accordingly
To test REST you can go to http://{domain_name}/rest/V1/{method}/{attribute}/{value}.