Web API でデータを送信するために JSON または XML 形式を使用するのはごく一般的です。PSR-7 実装はすぐにこれらの形式をサポートしません。要求オブジェクトの getBody() を自分でデコードする必要があります。一般的な要件であるため、Slim 4 は BodyParsingMiddleware を提供して、このタスクを処理します。
body 解析ミドルウェアを addErrorMiddlware 呼び出しの前に配置することをお勧めします。その場合、スタックはこのようになります。
<?php
use Slim\Factory\AppFactory;
require_once __DIR__ . '/../vendor/autoload.php';
$app = AppFactory::create();
// Parse json, form data and xml
$app->addBodyParsingMiddleware();
$app->addRoutingMiddleware();
$app->addErrorMiddleware(true, true, true);
// ...
$app->run();
Content-Type が JSON メディアタイプに設定されていることを BodyParsingMiddleware が検出し、デコードされたボディを Request の解析された body プロパティに配置するので、POST ハンドラーに変更は必要ありません。
ブラウザーから Web サイトに投稿されたデータの場合、$request の getParsedBody() メソッドを使用できます。
これにより、投稿データの配列が返されます。
$app->post('/', function (Request $request, Response $response, $args): Response {
    $data = $request->getParsedBody();
    
    $html = var_export($data, true);
    $response->getBody()->write($html);
    
    return $response;
});
Content-Type を読み取って、メディアタイプを検出します。application/.