Saya mencoba membuat rute api dengan parameter input tapi saya tidak mendapatkan hasil yang diharapkan.
Inilah webapi.xml saya:
<?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>
Di sini antarmuka saya:
interface FooInterface
{
/**
* Test function
*
* @api
* @param string $id
* @return string
*/
public function getFooById($id);
}
Dan di sini kelasnya:
class Foo implements FooInterface
{
/**
* {@inheritdoc}
*/
public function getFooById($id){
return $id;
}
}
Saya menghilangkan di.xml dengan preferensi. Sekarang jika saya memanggil rute itu apa pun yang saya lakukan, saya akan dapatkan kembali %id%
. Bahkan jika saya tidak memasukkan parameter apa pun, saya mendapatkannya alih-alih kesalahan atau sesuatu.
Apa yang saya lakukan salah di sini?
Ini adalah panggilan di tukang pos:
Saya mencoba:
- mengirim permintaan get
- mengirim permintaan get dengan parameter
/order?id=foo
- mengirim permintaan pos
- mengirim permintaan posting dengan formulir-data
- mengirim permintaan pos dengan data mentah (seperti yang terlihat di tangkapan layar)
Semua memiliki hasil yang sama -> %id%
Saya menggunakan edisi komunitas btw.