Hi,
I am trying to write an example module with a REST service 'Calculator' as described in here.
The module shows up on "php bin/magento module:status" list as 'enabled'.
However, when I try to access the server via the endpoint
http://127.0.0.1:8080/magento2/rest/V1/calculator/1/2
I just get the following error:
Request does not match any route.
I tried the built in REST APIs and they seem to work. Hence the problem is with this custom module.
Unfortunately I do not see any errors in the logs.
Now, my question is - how do you approach such problems?
What is the main controller class handling REST endpoints that could potentially give some clues?
I use Magento 2.1.
Thanks,
Gin
Hello,
Re-compile magento and clear the cache if does not work then can you please paste your code for the following:
1. webapi.xml
2. di.xml
3. interface.php
4. and model where you implemented the interface.
Hi Manish,
Thanks for the reply!
Tried recompiling - no luck.
Please see the source code/configuration below:
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"> <!-- Example: curl http://localhost:8080/magento2/rest/V1/calculator/add/1/2 --> <route url="/V1/calculator/add/:num1/:num2" method="GET"> <service class="Test\CalculatorWebService\Api\CalculatorInterface" method="add"/> <resources> <resource ref="anonymous"/> </resources> </route> </routes>
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="Test\CalculatorWebService\Api\CalculatorInterface" type="Test\CalculatorWebService\Model\Calculator" /> </config>
CalculatorInterface.php
<?php namespace Test\CalculatorWebService\Api; interface CalculatorInterface { /** * Return the sum of the two numbers. * * @api * @param int $num1 Left hand operand. * @param int $num2 Right hand operand. * @return int The sum of the numbers. */ public function add($num1, $num2); }
Calculator.php
<?php namespace Test\CalculatorWebService\Model; use Test\CalculatorWebService\Api\CalculatorInterface; class Calculator implements CalculatorInterface { /** * Return the sum of the two numbers. * * @api * @param int $num1 Left hand operand. * @param int $num2 Right hand operand. * @return int The sum of the two values. */ public function add($num1, $num2) { return $num1 + $num2; } }
Thanks,
Gin
Ok, that's embarrassing - the endpoint supposed to be:
.../rest/V1/calculator/add/1/2
Closing the thread.
Hello,
Sorry for the late response. Glad to see that you fixed you issue. If you have any other issue regarding Magento2 REST API let us know.
I am not able whatever the fixes you have done here. Can you explain here. which will helpful for me to understand.
Hello ,
I integrate custom module for API in magento V 2.0.2 , It is activated. But when i run my URL : http://localhost/magento2/rest/V1/order/myorder it gives me :
<response><message>Request does not match any route.</message></response>
This error . Please help me i am new to Magento 2 .
Guide me the fruitful suggestion to resolve my issue.
Thank you
Hello sir,
Thank you for your reply. I refer following links for creating module :
1) https://www.ipragmatech.com/extend-magento2-rest-api-easy-steps/
2) https://www.demacmedia.com/extending-magento-2-rest-web-api/
I created module as per the steps given in above link.
Please give me clarification of folder and file path for module creation. Because i re-integrate module as per your suggestion but still same error i got. I am trying this at my local host.
Please tell me file/folder path for creation of custom REST API module.
eagerly waiting for your suggestion.
Thank you.
Hello sir,
I want to get all root categories of my store using Rest API , for that i use this URL : http://magento2.localhost/index.php/rest/all/V1/categories
But i got this error when i hit this URL.
{"message":"Cannot perform GET operation with store code 'all'"}
Please suggest me solution for getting all root categories in magento2.
Thank You.