ntb / silverstripe-rest-api
REST api module for Silverstripe
This package's canonical repository appears to be gone and the package has been frozen as a result.
Installs: 3 605
Dependents: 3
Suggesters: 0
Security: 0
Stars: 8
Watchers: 4
Forks: 7
Open Issues: 1
Type:silverstripe-module
Requires
- php: >=5.3.2
- composer/installers: *
- silverstripe/framework: >=3.1.13
This package is auto-updated.
Last update: 2022-02-19 20:16:31 UTC
README
This module models the REST api in a simple fashion.
All routes for the different resources should resolved by a controller which extends the BaseRestController.
After that, you can add your routes into your YAML config file.
Features
- Queries
- Field list
- Different serialisation formats
- Pagination
- Presenters
Routes
For the definition of your routes, use the Silverstripe config system. You can add nested routes before the base route
of that endpoint. In this example we have v/1/sessions
, v/1/users/<ID>
and v/1/users/<ID>/friends
.
Director: rules: 'v/1/users/$ID!/friends/$FriendID': 'FriendshipController' 'v/1/users/$ID': 'UserController' 'v/1/sessions/$ID': 'Ntb\RestAPI\SessionController'
GET Parameters
If you visit your api through a browser, the controller will render it as html as long as you not specify an accept
GET param, eg. ?accept=json
.
You can specify the access token with access_token
. This can be used for accessing restricted resources with specific
privileges.
Testing
For functional tests, you can extend the RestTest
class and use it to test your application. We recommend to use
fixtures for testing like it is explained in the Silverstripe documentation.
More Information
You can find more information in the wiki.