cancel
Showing results for 
Search instead for 
Did you mean: 

Magento 2 Rest API Response Get Method 404 issue

Magento 2 Rest API Response Get Method 404 issue

I am trying to use magento2  Rest API method to generate the response for mobile APP.

 

For that created Following Structure:

 

Module:  Company/Manufacture

Company/Manufacture/composer.json

Company/Manufacture/registration.php  - Register Module

Company/Manufacture/etc/module.xml  -  To Enable Module

 

Company/Manufacture/API/CustomerInterface.php -  Following Code in this file:

namespace Company\Manufacture\Api;

interface CustomerInterface
{
public function customerlist();


}

 

 

Company/Manufacture/etc/webapi.xml:  Following code:

 

<?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/mobileapp/customer/customerlist" method="GET">
       <service class="Company\Manufacture\Api\CustomerInterface" method="customerlist"/>
          <resources>
        <resource ref="anonymous"/>
     </resources>
</route>
</routes>

 

Company/Manufacture/Model/Customer.php: Following code:

namespace Company\Manufacture\Model;

use  Company\Manufacture\Api\CustomerInterface as ApiInterface;
 
class Customer implements ApiInterface {
 
public function customerlist(){
 $data =  array("Dance","Success");
        $test = array(['success'=>true,'data'=>$data);
        return $test;
}
}

 

 

Now after doing all these settings when running following url throws 404 error:

 

http://127.0.0.1/M224/V1/mobileapp/customer/customerlist

Not sure why getting 404 Error.  Am i missing any settings?   Do i need to configure anything on admin for this?

 

Is there any settings i need to do on admin to run REST API?

 

Any help would be appreciated.

1 REPLY

Re: Magento 2 Rest API Response Get Method 404 issue

You should do next steps form make it work.

1) Add DI config with service definition
Example:

<preference for="Acme\RestApi\Api\HelloInterface" type="Acme\RestApi\Model\HelloService" />


2) Fix ACL definition

 

From: 

 <resource ref="anonymous"/>

To:

<resources>
      <resource ref="anonymous" />
 </resources>


3) Add DOC block for interface method (It is required for Reflection class)
Example:

interface HelloInterface
{
/**
* Get Hello message
*
* @return string
*/
public function sayHello();
}

 
4) Change your URL by this pattern:

{sheme}://{base}/rest/{endpoint}

In your case if your base url `http://127.0.0.1/M224/` it must be something like this:

http://127.0.0.1/M224/rest/V1/mobileapp/customer/customerlist


Here you can check full working example: link (30days only)