Ublaboo api-router nedaří se mi rozběhat

hancs
Člen | 57
+
0
-

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
+
0
-

@hancs Doporučuji vyzkoušet https://github.com/…uter-project, třeba pak najdeš, proč to u tebe nejede.

d3tr1tus
Člen | 52
+
0
-

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
+
0
-

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

CELÝ ZDROJOVÝ KÓD-GITHUB

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