J'essaie de créer une route api avec des paramètres d'entrée mais je n'obtiens pas le résultat attendu.
Voici mon 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>
Voici mon interface:
interface FooInterface
{
/**
* Test function
*
* @api
* @param string $id
* @return string
*/
public function getFooById($id);
}
Et voici la classe:
class Foo implements FooInterface
{
/**
* {@inheritdoc}
*/
public function getFooById($id){
return $id;
}
}
J'omets le di.xml avec la préférence. Maintenant, si j'appelle cette route, quoi que je fasse, tout ce que je récupère est %id%
. Même si je ne mets aucun paramètre, j'obtiens cela au lieu d'une erreur ou de quelque chose.
Qu'est-ce que je fais mal ici?
J'ai essayé:
- envoi d'une demande get
- envoi d'une requête get avec paramètre
/order?id=foo
- envoi d'une demande de publication
- envoi d'une demande de publication avec formulaire-données
- envoyer une demande de publication avec des données brutes (comme on le voit sur la capture d'écran)
Tous ont le même résultat -> %id%
J'utilise l'édition communautaire btw.