Magento 2 Create Custom API

Magento 2 Create Custom API

Create Custom Rest API in Magento 2

API stands for Application Programming Interface to allow you access the data from an application. API can be called as a middleman between a programmer and an application. When the programmer calls for a request via the middleman, if the request is approved, the right data will be turned back.

REST API basically helps to define a set of functions to perform requests and get responses using the HTTP protocol.

=> Create module.xml at app/code/Tridhyatech/CustomApi/etc/module.xml with the below code:

<‍config xmlns:xsi="" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
 <‍module name="Tridhyatech_CustomApi" setup_version="1.0.0" />

=> Create registration.php at app/code/Tridhyatech/CustomApi/registration.php and paste the below code:


=> Create webapi.xml at app/code/Tridhyatech/CustomApi/etc/webapi.xml with the below code:

<‍?xml version="1.0"?>
<‍routes xmlns:xsi="" xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd">
    <‍route method="POST" url="/V1/custom/custom-api/">
        <‍service class="Tridhyatech\CustomApi\Api\CustomInterface" method="getPost"/>
            <‍resource ref="anonymous"/>

=> Create di.xml at app/code/Tridhyatech/CustomApi/etc/di.xml with the below code:

<‍?xml version="1.0"?>
<‍config xmlns:xsi="" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
  <‍preference for="Tridhyatech\CustomApi\Api\CustomInterface" type="Tridhyatech\CustomApi\Model\Api\Custom"/>

=> Create CustomInterface.php in path app/code/Tridhyatech/CustomApi/Api/CustomInterface.php


namespace Tridhyatech\CustomApi\Api;

interface CustomInterface
  * GET for Post api
  * @param string $value
  * @return string

  public function getPost($value);

=> Create Custom.php in path app/code/Tridhyatech/CustomApi/Model/Api/Custom.php


namespace Tridhyatech\CustomApi\Model\Api;

use Psr\Log\LoggerInterface;

class Custom
  protected $logger;

  public function __construct(
    LoggerInterface $logger

    $this->logger = $logger;

  * @inheritdoc

  public function getPost($value)
    $response = ['success' => false];

    try {
      // Your Code here
      $response = ['success' => true, 'message' => $value];
    } catch (\Exception $e) {
      $response = ['success' => false, 'message' => $e->getMessage()];
    $returnArray = json_encode($response);
    return $returnArray;

Finally, run the setup upgrade and deploy commands and you are done with creating a custom rest API in Magento 2. You can check the created custom rest API using postman.

Copyright © 2024 Tridhya Tech Limited, Inc. All rights reserved.