Ublaboo api-router nedaří se mi rozběhat
- hancs
- Člen | 57
Ahoj @PavelJanda
snažím se rozběhat ublaboo/api-router, ale narážím na chybu
Call to undefined method Ublaboo\ApiRouter\ApiRoute::onMatch()
můj RouterFactory:
<?php
/**
* @return Nette\Application\IRouter
*/
public static function createRouter()
{
$router = new RouteList;
$router[] = new Route('', 'Admin:Homepage:default');
$router[] = new Route('<presenter>/<action>[/<id>]', 'Admin:Homepage:default');
$router[] = new Route('[<locale=cs cs|en>/]<presenter>/<action>[/<id>]', "Homepage:default");
$router[] = new ApiRoute('/customer[/<id>]', 'API:CustomerApiPresenter:default', array(
'parameters' => array(
'id' => array('requirement' => '\d+', 'default' => 10)
),
'priority' => 1
));
return $router;
}
?>
a presenter který chci volat:
<?php
class CustomerApiPresenter implements IPresenter {
/** @var \App\Model\ApiAuthorizator */
private $apiAuthorizator;
/** @var \App\Model\CustomerManager */
private $customerManager;
public function __construct(\App\Model\ApiAuthorizator $apiAuthorizator, \App\Model\CustomerManager $customerManager)
{
$this->apiAuthorizator = $apiAuthorizator;
$this->invoiceManager = $customerManager;
}
public function actionRead($number){
$customer = $this->customerManager->getCustomerByNumber($number);
return new JsonResponse($customer);
}
}
?>
Volám to takhle http://localhost-gofakturace/customer/456
Předem moc díky za pomoc.
Editoval hancs (22. 5. 2018 10:34)
- Pavel Janda
- Člen | 977
@hancs Doporučuji vyzkoušet https://github.com/…uter-project, třeba pak najdeš, proč to u tebe nejede.
- d3tr1tus
- Člen | 52
Ahoj @hancs vyřešil si tu chybu? Zobrazuje se mi teď taky a netuším kde to mám špatně.
$router = new RouteList;
$router[] = new ApiRoute('/api/send-email', "Api:Homepage", ["methods" => ["GET" => "sendEmail", "OPTIONS"]]);
$router[] = $module = new RouteList('Front');
$module[] = new Route('[<locale=cs cs|en|de>/]<presenter>/<action>[/<id>]', 'Homepage:default');
return $router;
Díky za radu.
- JakubAndrysek
- Člen | 1
Ahoj @PavelJanda
Snažím se v Nette rozběhnout api pomocí ApiRouteru, ale
nedaří se mi to.
Rozběhnul jasem si klasický Nette sandbox a do něj jsem nakopíroval ukázkový kód
RouterFactory.php
<?php
declare(strict_types=1);
namespace App\Router;
use Nette;
use Nette\Application\Routers\RouteList;
use Ublaboo\ApiRouter\ApiRoute;
final class RouterFactory
{
use Nette\StaticClass;
public static function createRouter(): RouteList
{
$router = new RouteList;
$router[] = new ApiRoute('/hello', 'Users');
return $router;
}
}
?>
Po zadání: http://localhost/…st/www/hello
Mi Tracy vyhodí BadRequestException #404 No route for HTTP request SCREENSHOT
Poradíte mi prosím jak to rozběhnout. Případně kde bych našel nějaký funkční projekt s ApiRouterem?
Předem děkuji za pomoc, Kuba