No obtengo resultado (id) mientras uso el método POST usando url es rest / V1 / hello / test / 3
He seguido este enlace. Para referencia, haga clic aquí.
1) 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="Inchoo\Hello\Api\HelloInterface" method="name"/>
<resources>
<resource ref="anonymous"/>
</resources>
</route>
<route url="/V1/hello/test/:test" method="POST">
<service class="Inchoo\Hello\Api\TestInterface" method="test"/>
<resources>
<resource ref="anonymous"/>
</resources>
</route>
</routes>
2) TestInterface.php
<?php
namespace Inchoo\Hello\Api;
interface TestInterface
{
/**
* Returns greeting message to user
*
* @api
* @param id $name Users id.
* @return id Greeting message with users id.
*/
public function test($id);
}
3) Test.php
<?php
namespace Inchoo\Hello\Model;
use Inchoo\Hello\Api\TestInterface;
class Test implements TestInterface
{
/**
* Returns greeting message to user
*
* @api
* @param string $name Users name.
* @return string Greeting message with users name.
*/
public function test($id) {
return "Hello How are you your id is:," .$id;
}
}
4) 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="Inchoo\Hello\Api\HelloInterface" type="Inchoo\Hello\Model\Hello" />
<preference for="Inchoo\Hello\Api\TestInterface" type="Inchoo\Hello\Model\Test" />
</config>
Ahora borré el caché y el caché de página y abrí la aplicación de carteros y mantuve la URL como http://10.0.0.33/nagarajuM2/rest/V1/hello/test/3
pero recibo un error
Por favor, ayúdame.
Respuestas:
Está enviando una solicitud POST, por lo que también debe enviar datos en la solicitud POST en formato json como:
{ "id": {}}
Y tiene que configurar
Content-Type:application/json
en el encabezado http.fuente
Actualice los comentarios de la función correctamente tanto para el archivo de interfaz como para la clase que lo implementa.
fuente
Estaba recibiendo los mismos problemas, luego noté que estaba usando POST en lugar de GET , cambiándolo, los problemas se resolvieron.
fuente