writecrow / rest_feedback_endpoint
REST endpoint for receiving a POST request
Installs: 73
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 5
Forks: 0
Open Issues: 0
Type:drupal-module
Requires
- composer/installers: ^1 || ^2
This package is auto-updated.
Last update: 2024-10-09 04:16:46 UTC
README
This module provides a REST resource endpoint for receiving a POST request and sending an email with the content provided. The example in this module demonstrates feedback form content, but the SubmitIssue
endpoint can serve as a model for other types of endpoints.
Recommended setup
- Use the
simple_oauth
module - Enable Drupal core's
rest_ui
module. - Go to
/admin/config/services/rest
and enable the "Submit an issue" endpoint:- Granularity: Resource
- Method: POST
- Accepted request formats: json, xml
- Authentication providers: oauth2
- Set permission for which role(s) may access the endpoint at
/admin/people/permissions#module-rest
- Ensure that your endpoint can be reached by configuring your
services.yml
file:
cors.config:
enabled: true
# Specify allowed headers, like 'x-allowed-header'.
allowedHeaders: ['x-csrf-token','authorization','content-type','accept','origin','x-requested-with', 'access-control-allow-origin','x-allowed-header']
# Specify allowed request methods, specify ['*'] to allow all possible ones.
allowedMethods: ['GET', 'POST']
# Configure requests allowed from specific origins (ideally, limit this to the expected origins)
allowedOrigins: ['*']
# Sets the Access-Control-Expose-Headers header.
exposedHeaders: false
# Sets the Access-Control-Max-Age header.
maxAge: false
# Sets the Access-Control-Allow-Credentials header.
supportsCredentials: false
If replicating the original demonstration SubmitIssue
, pay close attention to the annotation, which defines the
route, and must follow an idiosyncratic format to work with POST requests (see https://www.drupal.org/forum/support/post-installation/2017-02-21/post-return-no-route-found-error-while-get-request-is):
* @RestResource(
* id = "feedback_endpoint_bug_report",
* label = @Translation("Submit an issue"),
* uri_paths = {
* "canonical" = "/submit-issue",
* "create" = "/submit-issue"
* }
* )