webapi.xml:
<route url="/V1/orders/" method="GET">
<service class="SimplifiedMagento\Custom2\Api\OrderedRepositoryInterface" method="getOrderDetails"/>
<resources>
<resource ref="anonymous" />
</resources>
</route>
service class of API:
<?php
namespace SimplifiedMagento\Custom2\Model;
use SimplifiedMagento\Custom2\Api\OrderedRepositoryInterface;
use SimplifiedMagento\Custom2\Model\AddDataFactory;
use Magento\Sales\Model\OrderFactory;
use SimplifiedMagento\Custom2\Api\Data\OrderedInterfaceFactory;
class OrderedRepository implements OrderedRepositoryInterface
{
public $addDataFactory;
public $orderFactory;
public $orderedInterfaceFactory;
public function __construct(AddDataFactory $addDataFactory,OrderFactory $orderFactory,OrderedInterfaceFactory $orderedInterfaceFactory)
{
$this->addDataFactory = $addDataFactory;
$this->orderFactory = $orderFactory;
$this->orderedInterfaceFactory = $orderedInterfaceFactory;
}
/**
*
*@return \SimplifiedMagento\Custom2\Api\Data\OrderedInterface
*/
public function getOrderDetails()
{
/*$employeeId = 2;
$custom = $this->addDataFactory->create();
$obj = $custom->getCollection()->addFieldToSelect(['customer_id'])->addFieldToFilter('entity_id',$employeeId);
foreach($obj as $id)
{
$arr = $id->getData();
break;
}
$var = $arr['customer_id']; //customer id
$object = $this->orderFactory->create();
$engg = $object->getCollection()->addFieldToSelect(['entity_id'])->addFieldToFilter('customer_id',$var);
foreach($engg as $item)
{
$array = $item->getData();
break;
}
$var = $array['entity_id'];
$into = $this->OrderedInterfaceFactory->create()->setOrderId($var);
return $into;
*/
$emp = $this->addDataFactory->create()->getCollection()->addFieldToSelect(['customer_id'])->addFieldToFilter('entity_id',2);
foreach($emp as $hit)
{
$datas = $hit->getData();
}
$vard = $datas['customer_id'];
//var_dump($vard);
// echo "</br>";
$obj = $this->orderFactory->create()->getCollection()->addFieldToSelect(['entity_id'])->addFieldToFilter('customer_id',$vard);
foreach($obj as $item)
{
$arr = $item->getData();
//break;
}
$var = $arr['entity_id'];
//var_dump($var);
$into = $this->OrderedInterfaceFactory->create()->setOrderId($var);
return $into;
}
}
?>
Servie interface:
<?php
namespace SimplifiedMagento\Custom2\Api;
Interface OrderedRepositoryInterface
{
/**
*
* @return \SimplifiedMagento\Custom2\Api\Data\OrderedInterface
*/
public function getOrderDetails();
}
?>
Data class :
<?php
namespace SimplifiedMagento\Custom2\Model\Data;
use Magento\Framework\DataObject;
use SimplifiedMagento\Custom2\Api\Data\OrderedInterface;
class Ordered extends DataObject implements OrderedInterface
{
/**
* @return string
*
*/
public function getOrderId()
{
return $this->getData('OrderId');
}
/**
* @param string $orderId
* @return $this
*/
public function setOrderId($orderId)
{
return $this->setData('OrderId',$orderId);
}
}
?>
Data Interface :
<?php
namespace SimplifiedMagento\Custom2\Model\Data;
use Magento\Framework\DataObject;
use SimplifiedMagento\Custom2\Api\Data\OrderedInterface;
class Ordered extends DataObject implements OrderedInterface
{
/**
* @return string
*
*/
public function getOrderId()
{
return $this->getData('OrderId');
}
/**
* @param string $orderId
* @return $this
*/
public function setOrderId($orderId)
{
return $this->setData('OrderId',$orderId);
}
}
?>
service Interfce:
<?php
namespace SimplifiedMagento\Custom2\Api;
Interface OrderedRepositoryInterface
{
/**
*
* @return \SimplifiedMagento\Custom2\Api\Data\OrderedInterface
*/
public function getOrderDetails();
}
?>
searchCriteria
in api endpoint even there is no searchCriteria you want to pass, add likeyourendpint?searchCriteria
, this will solve this error