This article solves the following challenge:
How to create a REST endpoint with Drupal 8?
There is not so much information about implementing a REST endpoint in Drupal 8 - you can find a lot of information about creating an endpoint for a GET Request but little information about the other HTTP request methods (POST/PUT/DELETE). Before implementing a REST endpoint there are some prerequisites. You have to install the following modules: REST UI, RESTful Web Services, Serialization and Entity. After installing them you are ready to go.
First of all you need an entity for which u create the endpoint (you can take an already existing one like Node or you can create a new one - a new one has to be created under the module path ‘src\Entity\.php’). With this entity you get some nice functions like storing, updating, deleting etc. . Now you can create your REST endpoint. The endpoint has to be created under the path ‘src\Plugin\rest\resource\’. The endpoint has to contain a header:
/**
* Provides a resource to get view modes by entity and bundle.
*
* @RestResource(
* id = "",
* label = @Translation(""),
* serialization_class = "",
* uri_paths = {
* "canonical" = "/{id}",
* "https://www.drupal.org/link-relations/create" = ""
* }
* )
*/
Now you just have to implement the following methods:
public function get($id){return Symfony\Component\HttpFoundation\Response}
public function put($id, $data){return Symfony\Component\HttpFoundation\Response}
public function post($node_type, $data){return Symfony\Component\HttpFoundation\Response}
public function delete($id){return Symfony\Component\HttpFoundation\Response}
The last thing is the definition of the access methods - this can be done under /admin/config/services/rest of your Drupal installation. You can find your request methods with the label you gave in the header.
Evaluate complexity of present statement:
Select ratingCancelGuessingPassing knowledgeKnowledgeableExpert
Your rating: 4 Average: 4 (2 votes)