PHPackages                             writecrow/rest\_feedback\_endpoint - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. writecrow/rest\_feedback\_endpoint

ActiveDrupal-module[API Development](/categories/api)

writecrow/rest\_feedback\_endpoint
==================================

REST endpoint for receiving a POST request

1.1.0(2y ago)081GPL-2.0+PHP

Since Oct 4Pushed 1y ago4 watchersCompare

[ Source](https://github.com/writecrow/rest_feedback_endpoint)[ Packagist](https://packagist.org/packages/writecrow/rest_feedback_endpoint)[ Docs](https://github.com/writecrow/rest_feedback_endpoint)[ RSS](/packages/writecrow-rest-feedback-endpoint/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (4)Dependencies (1)Versions (10)Used By (0)

Feedback Endpoint
-----------------

[](#feedback-endpoint)

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
-----------------

[](#recommended-setup)

1. Use the `simple_oauth` module
2. Enable Drupal core's `rest_ui` module.
3. 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
4. Set permission for which role(s) may access the endpoint at `/admin/people/permissions#module-rest`
5. 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 ):

```
 * @RestResource(
 *   id = "feedback_endpoint_bug_report",
 *   label = @Translation("Submit an issue"),
 *   uri_paths = {
 *    "canonical" = "/submit-issue",
 *    "create" = "/submit-issue"
 *   }
 * )

```

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance35

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 86.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~126 days

Recently: every ~173 days

Total

9

Last Release

1090d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4305692?v=4)[Mark Fullmer](/maintainers/markfullmer)[@markfullmer](https://github.com/markfullmer)

![](https://avatars.githubusercontent.com/u/27739911?v=4)[Corpus &amp; Repository of Writing (Crow)](/maintainers/writecrow)[@writecrow](https://github.com/writecrow)

---

Top Contributors

[![markfullmer](https://avatars.githubusercontent.com/u/4305692?v=4)](https://github.com/markfullmer "markfullmer (13 commits)")[![jmf3658](https://avatars.githubusercontent.com/u/34824280?v=4)](https://github.com/jmf3658 "jmf3658 (2 commits)")

---

Tags

drupalrestdrupal

### Embed Badge

![Health badge](/badges/writecrow-rest-feedback-endpoint/health.svg)

```
[![Health](https://phpackages.com/badges/writecrow-rest-feedback-endpoint/health.svg)](https://phpackages.com/packages/writecrow-rest-feedback-endpoint)
```

###  Alternatives

[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.5k10](/packages/helsingborg-stad-municipio)[pressbooks/pressbooks-book

This theme is named after Canadian media theorist Marshall McLuhan, who coined the phrase “the medium is the message.” It is designed for academic writing and is also suitable for fiction. Headings are set in Cormorant Garamond, and body type is set in Lora.

216.7k](/packages/pressbooks-pressbooks-book)[hussainweb/drupal-api-client

Convenient wrapper on Guzzle to access Drupal.org API

148.8k](/packages/hussainweb-drupal-api-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
