Am creat un controler într-un modul personalizat care acceptă a POST
cerere.
Am o configurație astfel încât să primesc un POST
cerere de la un server de aplicații terță parte către acest API. Cu exceptia POST
cererea are o Tip de conținut: „application/x-www-form-urlencoded”
în antet.
Și din această cauză primesc următoarea eroare în mesajele de jurnal recente:
Symfony\Component\HttpKernel\Exception\UnsupportedMediaTypeHttpException: Nu s-a găsit nicio rută care să se potrivească cu „Content-Type: application/x-www-form-urlencoded” în Drupal\Core\Routing\ContentTypeHeaderMatcher->filter() (linia 49 din /var/ www/html/web/core/lib/Drupal/Core/Routing/ContentTypeHeaderMatcher.php).```
Când testez API-ul folosind poștaș:
- dacă folosesc
Tip de conținut: „application/json”
în antet, codul din interiorul API este executat și primesc răspunsul corect.
- dacă folosesc
Tip de conținut: „application/x-www-form-urlencoded”
, primesc aceeași eroare.
Nu pot configura serverul de aplicații terță parte pentru a schimba Tipul de conținut
. Deci singura opțiune pentru mine este să configurez API-ul pentru a accepta POST
cerere cu Tip de conținut: „application/x-www-form-urlencoded”
. Cum pot face acest lucru?
Editat:
Clasa mea extinde clasa ResourceBase. Definirea rutei controlerului. De asemenea, folosesc drupal 8.
* @RestResource(
* id = "test_abc_callback",
* label = @Translation(„API-ul personalizat pentru testare”),
* uri_paths = {
* "create" = "/api/v1/test_callback",
*}
* )