Apitte No matched route by given URL

kini
Člen | 13
+
0
-

Snažím se vytvořit jednoduché API s apitte ale stále mi to vrací chybu No matched route by given URL.
Postupoval jsem přesně podle dokumentace.
Upravil jsem si index.php:

$isApi = substr($_SERVER['REQUEST_URI'], 10, 4) === '/api';
$container = Bootstrap::boot()->createContainer();

if ($isApi) {
    $container->getByType(ApiApplication::class)->run();
} else {
    $container->getByType(UIApplication::class)->run();
}

Zaregistroval jsem si do configu controller a extension

extensions:
  	api: Apitte\Core\DI\ApiExtension
api:
    debug: %debugMode%
    catchException: true
services:
    - App\Api\V1\Controllers\UsersController

a do adresáře App/Api/V1/Controllers
jsem vložil BaseV1Controller.php a UsersController.php (vzal jsem je přímo z dokumentace).

Jestli jsem to pochopil správně tak ta routa by měla být vytvořena anotací @Path což by tedy mělo být /api/v1/users/.
Když ale otevřu adresu /api/v1/users/ tak mi to místo jsonu se seznamem uživatelů vrátí chybu No matched route by given URL.

Editoval kini (28. 12. 2023 16:37)

Infanticide0
Člen | 103
+
0
-

Cache smazaná?

kini
Člen | 13
+
0
-

Ano, cache pro jistotu mažu po každé změně.

Infanticide0
Člen | 103
+
+2
-

Nemáš web ve složce bez doc rootu nebo www v adrese? Pak to hledá špatně controller a musíš do Path dát celou cestu
např. #[Path(„/www/api/v1“)]

kini
Člen | 13
+
0
-

Jo, to je ono. Běží mi to v XAMPPu (localhost/api-test/api/v1/users/) Stačilo přidat api-test do @path a už to funguje. Děkuji za radu.

R@da
Člen | 28
+
0
-

Ahoj,
mám stejný problém. Jak se toto řeší v produkčním vs vývojovém prostředí? Na produkci je @Path(„/api/v1“), ale na localhostu to je @Path(„/apitest/web-project/www/api/v1“). Lze udělat nějakou podmínku?
Děkuji

Editoval R@da (23. 7. 19:41)

Felix
Nette Core | 1196
+
0
-

Zkus pouzit AutoBasePathMiddleware, ten by tohle mel resit.

https://github.com/…master/.docs#…