路线上的 Swagger + Slimframework 错误
Swagger + Slimframework error on route
我正在使用 Slimphp 创建一个 Api。我用 Swagger.io 生成了 doc 和 Client+Server 文件。现在我正在尝试使用一些路线,但它给我一个错误
Catchable fatal error: Argument 1 passed to App\v1\Api\ContactApi::__construct() must be an instance of App\v1\lib\ApiClient, instance of Slim\Container given, called in C:\xampp\htdocs\DigitalMade\vendor\slim\slim\Slim\CallableResolver.php on line 64 and defined in C:\xampp\htdocs\DigitalMade\app\v1\Api\ContactApi.php on line 55
使用的路线:
$this->GET('', App\v1\Api\ContactApi::class.':getContactAsList');
Link 至 类
- Api客户:https://gist.github.com/miorac/d2232ca71a3feaa0500f9f992d0a7e87
- 联系人Api:https://gist.github.com/miorac/c9373136ed2b694f59a2fbb0dfea3ebe
有人知道我做错了什么吗?
您需要向实现 ContactApi
的容器注册一个工厂
像这样:
$container = $app->getContainer();
$container[App\v1\Api\ContactApi::class] = function ($c) {
$apiClient = new App\v1\lib\ApiClient();
return new App\v1\Api\ContactApi($apiClient);
}
Slim 将在路由之前使用该工厂实例化 ContactApi
对象。
我正在使用 Slimphp 创建一个 Api。我用 Swagger.io 生成了 doc 和 Client+Server 文件。现在我正在尝试使用一些路线,但它给我一个错误
Catchable fatal error: Argument 1 passed to App\v1\Api\ContactApi::__construct() must be an instance of App\v1\lib\ApiClient, instance of Slim\Container given, called in C:\xampp\htdocs\DigitalMade\vendor\slim\slim\Slim\CallableResolver.php on line 64 and defined in C:\xampp\htdocs\DigitalMade\app\v1\Api\ContactApi.php on line 55
使用的路线:
$this->GET('', App\v1\Api\ContactApi::class.':getContactAsList');
Link 至 类 - Api客户:https://gist.github.com/miorac/d2232ca71a3feaa0500f9f992d0a7e87 - 联系人Api:https://gist.github.com/miorac/c9373136ed2b694f59a2fbb0dfea3ebe
有人知道我做错了什么吗?
您需要向实现 ContactApi
像这样:
$container = $app->getContainer();
$container[App\v1\Api\ContactApi::class] = function ($c) {
$apiClient = new App\v1\lib\ApiClient();
return new App\v1\Api\ContactApi($apiClient);
}
Slim 将在路由之前使用该工厂实例化 ContactApi
对象。