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",
*}
* )