2017-04-07 8 views
-1

Ich erstelle eine API für Get User von YII2 Benutzer API nach Benutzer-ID. Wenn ich die Benutzer-ID überlasse, funktioniert es gut, aber wenn ich die Zeichenfolge übergebe, erhalte ich einen Fehler.Yii2 REST API funktioniert nicht richtig

<pre>An Error occurred while handling another error: 
yii\base\InvalidParamException: Response content must not be an array. in /var/www/html/vendor/yiisoft/yii2/web/Response.php:1020 
Stack trace: 
#0 /var/www/html/vendor/yiisoft/yii2/web/Response.php(313): yii\web\Response-&gt;prepare() 
#1 /var/www/html/vendor/yiisoft/yii2/web/ErrorHandler.php(128): yii\web\Response-&gt;send() 
#2 /var/www/html/vendor/yiisoft/yii2/base/ErrorHandler.php(111): yii\web\ErrorHandler-&gt;renderException(Object(yii\web\NotFoundHttpException)) 
#3 [internal function]: yii\base\ErrorHandler-&gt;handleException(Object(yii\web\NotFoundHttpException)) 
#4 {main} 
Previous exception: 
yii\base\InvalidRouteException: Unable to resolve the request: categories/wewqewqe in /var/www/html/vendor/yiisoft/yii2/base/Controller.php:127 
Stack trace: 
#0 /var/www/html/vendor/yiisoft/yii2/base/Module.php(523): yii\base\Controller-&gt;runAction(&#039;wewqewqe&#039;, Array) 
#1 /var/www/html/vendor/yiisoft/yii2/web/Application.php(102): yii\base\Module-&gt;runAction(&#039;categories/wewq...&#039;, Array) 
#2 /var/www/html/vendor/yiisoft/yii2/base/Application.php(380): yii\web\Application-&gt;handleRequest(Object(yii\web\Request)) 
#3 /var/www/html/index.php(16): yii\base\Application-&gt;run() 
#4 {main} 

Next yii\web\NotFoundHttpException: Page not found. in /var/www/html/vendor/yiisoft/yii2/web/Application.php:114 
Stack trace: 
#0 /var/www/html/vendor/yiisoft/yii2/base/Application.php(380): yii\web\Application-&gt;handleRequest(Object(yii\web\Request)) 
#1 /var/www/html/index.php(16): yii\base\Application-&gt;run() 
#2 {main}</pre> 

ich verwende swagger für APIs und Endpunkt der API Ausführung ist

users/{id} 

Adaequat wenn

/users/1 

Get Fehler ein, wenn

/users/asdf 

Web.php

'users/<id:\d+>' => 'users/', 
+0

Zeigen Sie Ihre Routing-URL? – urfusion

+0

Bitte überprüfen Sie die Update-Frage. –

Antwort

2

Ich habe vor kurzem gleiches Problem konfrontiert und es durch die Änderung wurde in dem Routing in web.php in Config-Ordner gelöst.

Ihre URL ändern users/<id> statt users/<id:\d+>.