dfau / toujou-api
TYPO3 REST API Framework
Installs: 8 998
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 6
Forks: 0
Open Issues: 1
Type:typo3-cms-extension
Requires
- php: >=7.2 <7.5
- ext-json: *
- dfau/convergence: ^0.4.0
- dfau/toujou-oauth2-server: dev-master
- league/fractal: ~0.18
- league/tactician: ^2.0-rc1
- middlewares/error-handler: ^2.0.0
- middlewares/payload: ^2.1.1
- nikic/fast-route: ^1.3.0
- nikolaposa/cascader: ^1.2.0
- typo3/cms-core: ^9.5 | ^10.4 | ^11.3
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.3
- codeception/module-phpbrowser: ^1.0
- codeception/module-rest: ^1.3
- dfau/coding-standard: 1.0.1
- roave/security-advisories: dev-latest
- typo3/testing-framework: ^6.4.0
This package is auto-updated.
Last update: 2024-12-09 09:30:30 UTC
README
REST API for TYPO3 CMS based on {json:api}
Useful german youtube video https://www.youtube.com/watch?v=WoOuNe_rzpM
Installation
Require and install the plugin
$ composer require dfau/toujou-api
$ vendor/bin/typo3cms extension:install toujou_api
Configuration
To make the API work you have to do the following:
- Check Sites Management for api entrypoint
- Create a BE user with OAuth2 client_id and client_secrect (OAuth2 tab)
- Add and configure API resources (see Resources.php)
- Add and configure API routes (see Resources.php)
Security
The API will be secured to prevent unwarranted requests.
You can obtain an access token by sending a POST request to /_api/token
with following parameters:
Get auth token via request (Example):
curl --location --request POST 'https://rms.dfau.dev/_api/token' \ --form 'grant_type="client_credentials"' \ --form 'client_id="12fc7d65-0177-48be-9c3c-e7d8b2a1"' \ --form 'client_secret="131"'
On valid credentials the json response will contain an access token:
{ "token_type": "Bearer", "expires_in": 86400, "access_token": "eyJ0eXAiOiJ..." }
For all following requests you need to use this access token by adding following line to the request header
Authorization : Bearer <ACCESS_TOKEN>
Example requests:
curl --location --request GET 'https://rms.dfau.dev/_api/pages/' \ --header 'Authorization: Bearer eyJ0eXAi....' \
Development
Install php dependencies using composer:
$ composer install
PHPUnit Unit tests
$ etc/scripts/runTests.sh
PHPUnit Functional tests
$ etc/scripts/runTests.sh -s functional
Codeception Acceptance tests
$ etc/scripts/runTests.sh -s acceptance
Easy-Coding-Standard
Check coding standard violations
$ etc/scripts/checkCodingStandards.sh
Fix coding standard violations automatically
$ etc/scripts/checkCodingStandards.sh --fix
Documentation
Make `dockrun_t3rd available in current terminal
source <(docker run --rm t3docs/render-documentation show-shell-commands)
Run dockrun_t3rd
dockrun_t3rd makehtml
Open documentation
open "Documentation-GENERATED-temp/Result/project/0.0.0/Index.html"