-
Authors: Mirko Team
-
Email: support@mirko.in.ua
-
Website: mirko.in.ua
The "Custom Routes" extension (EXT:t3customroutes
) provide possibility to declare own api endpoints with own url
composer require mirko/t3customroutes
import route enhancer by adding following line on bottom of your site config.yaml
.
imports:
- { resource: "EXT:t3customroutes/Configuration/Routing/config.yaml" }
If you do not want to use import you can also manually add new route enhancer of type T3apiResourceEnhancer directly in your site configuration.
routeEnhancers:
CustomRoutes:
type: RoutesResourceEnhancer
Next step is to register custom routes in EXT:{extkey}/Configuration/routes.yaml
# config/routes.yaml
blog_list:
path: /blog
# the controller value has the format 'controller_class::method_name'
controller: App\Controller\BlogController::list
By default, routes match any HTTP verb (GET
, POST
, PUT
, etc.) Use the methods option to restrict the verbs each
route should respond to:
# config/routes.yaml
api_post_show:
path: /api/posts/{id}
controller: App\Controller\BlogApiController::show
methods: GET
api_post_edit:
path: /api/posts/{id}
controller: App\Controller\BlogApiController::edit
methods: PUT
class BlogController
{
public function list(int $page)
{
return 'basic api route';
}
}
# config/routes.yaml
blog_list:
path: /blog/{page}
controller: App\Controller\BlogController::list
defaults:
page: 1
blog_show:
# ...
You may also need to configure dependency injection in your extensions
You can contribute by making a pull request to the master branch of this repository.