Apitte – Middlewares a Controller

R@da
Člen | 28
+
0
-

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ěď.

R@da
Člen | 28
+
0
-

Kdyby měl někdo stejný problém, tak bylo potřeba smazat z configu sekci middleware a do basicAuth přidat tag.

services:
    basicAuth:
    	    class: Contributte\Middlewares\BasicAuthMiddleware
    	    tags: [middleware: [priority: 250]]
    	    setup:
    	        - addUser('rada', 'aaa', true)
Felix
Nette Core | 1195
+
+1
-

S @R@da jsme to probrali na spolecnem meetingu. Kdyby nekdo potreboval, prosim ozvete se. :-)