Sto cercando di creare un percorso API con parametri di input ma non sto ottenendo il risultato previsto.
Ecco il mio webapi.xml:
<?xml version="1.0"?>
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd">
<route url="/V1/foo" method="POST" secure="true">
<service class="..\FooInterface"
method="getFooById"/>
<resources>
<resource ref="anonymous"/>
</resources>
<data>
<parameter name="id" force="true">%id%</parameter>
</data>
</route>
</routes>
Ecco la mia interfaccia:
interface FooInterface
{
/**
* Test function
*
* @api
* @param string $id
* @return string
*/
public function getFooById($id);
}
E qui la classe:
class Foo implements FooInterface
{
/**
* {@inheritdoc}
*/
public function getFooById($id){
return $id;
}
}
Ometto il di.xml con la preferenza. Ora, se chiamo quella strada, qualunque cosa io faccia, tutto ciò che torno è %id%
. Anche se non inserisco alcun parametro, lo ottengo invece di un errore o qualcosa del genere.
Cosa sto facendo di sbagliato qui?
Provai:
- invio di una richiesta get
- invio di una richiesta get con parametro
/order?id=foo
- invio di una richiesta di posta
- invio di una richiesta di posta con i dati del modulo
- invio di una richiesta di post con dati non elaborati (come mostrato nello screenshot)
Tutti hanno lo stesso risultato -> %id%
Sto usando l'edizione della community a proposito.