Мне удалось настроить сервер API отдыха Yii2, и я пытаюсь отобразить содержимое запроса через мое клиентское приложение Yii2.
Запрос работает, и я могу получить доступ к данным, но я хотел бы «десериализовать» объект поставщика данных, возвращаемый API, чтобы использовать функцию разбиения на страницы и заданную _link
API CONTROLLER
namespace backend\controllers;
use filsh\yii2\oauth2server\filters\auth\CompositeAuth;
use filsh\yii2\oauth2server\filters\ErrorToExceptionFilter;
use yii\filters\auth\HttpBearerAuth;
use yii\filters\auth\QueryParamAuth;
use yii\helpers\ArrayHelper;
use yii\rest\ActiveController;
class RppsController extends ActiveController
{
public $modelClass = 'common\models\TblRpps';
public $serializer = [
'class' => 'yii\rest\Serializer',
'collectionEnvelope' => 'items',
];
/**
* @inheritdoc
*/
public function behaviors()
{
return ArrayHelper::merge(parent::behaviors(), [
'authenticator' => [
'class' => CompositeAuth::className(),
'authMethods' => [
['class' => HttpBearerAuth::className()],
['class' => QueryParamAuth::className(), 'tokenParam' => 'access_token'],
]
],
'exceptionFilter' => [
'class' => ErrorToExceptionFilter::className()
],
]);
}
}
И это клиент Action.
public function actionGetRpps()
{
/** @var InadvansApi $client */
$client = Yii::$app->authClientCollection->getClient('inadvans');
$client->authenticateClient();
$response = $client->createApiRequest()
->setMethod('GET')
->setUrl('rpps')
->send();
$dataprovider = new ArrayDataProvider(
[
'pagination' => [
'pageSize' => 10,
],
'sort' => [
'attributes' => ['rpps_id'],
],
'allModels' => $response->getData()['items'],
''
]
);
return $this->render('Users', compact('dataprovider'));
}
Задача ещё не решена.
Других решений пока нет …