mirko / t3customroutes
TYPO3 extension used to register custom api endpoints
Installs: 470
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 0
Forks: 0
Open Issues: 0
Type:typo3-cms-extension
Requires
- php: >=8.0.0
- doctrine/annotations: ^1.0
- goldspecdigital/oooas: ^2.4
- phpdocumentor/reflection-docblock: ^5.1
- symfony/cache: ^4.4 || ^5.0 || 6.*
- symfony/expression-language: ^4.1 || ^5.0 || 6.*
- symfony/http-foundation: ^4.2.9 || ^5.0 || 6.*
- symfony/mime: ^4.4 || ^5.0 || 6.*
- symfony/property-info: ^4.4 || ^5.0 || 6.*
- symfony/psr-http-message-bridge: ^2.1
- symfony/routing: ^4.1 || ^5.0 || 6.*
- typo3/cms-core: ^11.5 || 12.*
- typo3/cms-scheduler: ^11.5 || 12.*
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.1
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2024-09-30 01:50:34 UTC
README
-
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
Installation
composer require mirko/t3customroutes
Configuration
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
Creating custom api endpoint
Next step is to register custom routes in EXT:{extkey}/Configuration/routes.yaml
Creating Routes in YAML
# config/routes.yaml blog_list: path: /blog # the controller value has the format 'controller_class::method_name' controller: App\Controller\BlogController::list
Matching HTTP Methods
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
Method Parameters
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
Contributing
You can contribute by making a pull request to the master branch of this repository.