Magento 2 APIのエラー「%fieldNameは必須フィールドです」を取得しますか?


8

URL を使用してPOSTメソッドを使用しているときに、結果(ID)が取得されません。rest / V1 / hello / test / 3

スクリーンショットここに画像の説明を入力してください

私はこのリンクをたどりました参照のためにここをクリックしてください

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>

今私はキャッシュとページキャッシュをクリアし、postmenアプリを開いてhttp://10.0.0.33/nagarajuM2/rest/V1/hello/test/3のようなURLを保持しました

エラーが発生します。

私を助けてください。


あなたはPOSTリクエストを送信していて、その中でどのデータを送信していますか?
Emipro Technologies Pvt。株式会社

実際、私はpostメソッドを使用してid値を出力したいので、これまでインチーが従ったものと同じコンセプトを使用しています。そして、URLでrest / V1 / hello / name / 4のように使用しています
Nagaraju K '26

1
最初に印刷するには、json:{"id":{}}のようなPOSTデータを送信する必要があります
Emipro Technologies Pvt。Ltd.

[OK]を、私は試してみましょう...
Nagaraju K

@Emiproテクノロジーに感謝します。結果が出ました。助けてくれてありがとう prntscr.com/g0d53x
ナガラジュK

回答:



6

インターフェースファイルとそれを実装するクラスの両方の関数コメントを正しく更新します。

interface TestInterface
{
    /**
     * Returns greeting message to user
     *
     * @param int $name
     * @return mixed
     */
    public function test($id);
}

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.