入力パラメーターを使用してAPIルートを作成しようとしていますが、期待した結果が得られません。
これが私の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>
ここに私のインターフェース:
interface FooInterface
{
/**
* Test function
*
* @api
* @param string $id
* @return string
*/
public function getFooById($id);
}
そしてここにクラス:
class Foo implements FooInterface
{
/**
* {@inheritdoc}
*/
public function getFooById($id){
return $id;
}
}
設定でdi.xmlを省略しています。さて、そのルートを呼び出すと、何をしても、返されるのはすべてです%id%
。パラメータを何も指定しなくても、エラーや何かの代わりにそれを取得します。
ここで何が悪いのですか?
私は試した:
- getリクエストを送信する
- パラメータ付きのgetリクエストを送信する
/order?id=foo
- 投稿リクエストを送信する
- フォームデータを含む投稿リクエストを送信する
- 生データを含む投稿リクエストを送信する(スクリーンショットに表示)
すべて同じ結果になります-> %id%
コミュニティエディションを使用しています。
彼の問題の解決策を見つけましたか?同じ問題に直面していることをお知らせください。ありがとう
—
プルショタムシャルマ
会社を辞めて、コードにアクセスできなくなりました。私は最後のコメントで始めたことを唯一の答えでしたと思います。
—
steros