Apitte – Middlewares a Controller
- R@da
- Člen | 28
Ahoj,
snažím se rozchodit Apitte s basicAuth. Nainstaloval jsem
Contribute\Middlewares, který je nutný pro zprovoznění basicAuth.
Následně jsem ho zaregistroval v configu:
extensions:
resource: Contributte\DI\Extension\ResourceExtension
middleware: Contributte\Middlewares\DI\NetteMiddlewaresExtension
api: Apitte\Core\DI\ApiExtension
api:
plugins:
Apitte\Core\DI\Plugin\CoreSchemaPlugin:
Apitte\Core\DI\Plugin\CoreServicesPlugin:
Apitte\Core\DI\Plugin\CoreDecoratorPlugin:
Apitte\Debug\DI\DebugPlugin:
Apitte\Middlewares\DI\MiddlewaresPlugin:
tracy: true
autobasepath: true
debug: %debugMode%
catchException: true
middleware:
debug: %debugMode%
middlewares:
- Contributte\Middlewares\TracyMiddleware
#- @basicAuth #prozatím zakometováno, protože zatím mám někde chybu
services:
- App\Core\RouterFactory::createRouter
basicAuth:
class: Contributte\Middlewares\BasicAuthMiddleware
setup:
- addUser('admin', 'aaa', true)
Následně jsem upravil www/index.php:
//use Apitte\Core\Application\IApplication as ApiApplication;
use Contributte\Middlewares\Application\IApplication as ApiApplication;
$container->getByType(ApiApplication::class)->run();
Pokud jsem načetl Apitte\Core\Application\IApplication, tak se json výstup zobrazil. Jakmile jsem načetl Contributte\Middlewares\Application\IApplication, tak se mi zobrazí basicAuth přihlášení, ale po přihlášení se zobrazí prázdná stránka. Když v configu zakomentuju middlewares:basicAuth, tak se stále zobrazuje prázdná stránka. Cache jsem promazával.
UserController vypadá takto:
namespace App\Api\V1\Controllers;
use Apitte\Core\Annotation\Controller\Method;
use Apitte\Core\Annotation\Controller\Path;
use Apitte\Core\Http\ApiRequest;
use Apitte\Core\Http\ApiResponse;
use Nette\Utils\Json;
/**
* @Path("/users")
*/
class UsersController extends BaseV1Controller
{
/**
* @Path("/")
* @Method("GET")
*/
public function index(ApiRequest $request, ApiResponse $response): ApiResponse
{
$response = $response->writeBody(Json::encode([
[
'id' => 1,
'firstName' => 'John',
'lastName' => 'Doe',
'emailAddress' => 'john@doe.com',
],
[
'id' => 2,
'firstName' => 'Elon',
'lastName' => 'Musk',
'emailAddress' => 'elon.musk@spacex.com',
],
]));
return $response->withHeader('Content-Type', 'application/json');
}
}
Nevíte prosím proč se mi načte prázdná stránka? Co dělám
špatně?
Moc děkuji za odpověď.