在 Slim 中使用 post 请求通过 URL 传递数据

Passing data via URL with a post request in Slim

我正在创建一个 API,我想知道是否有任何方法可以通过 URL 和 post 方法传递数据,例如

add?name={name}&age={age}…

我没有太多 API 开发经验,但我记得这个 URL 东西在 Spring Boot 中工作。

提前致谢。

您可以像在任何类型的 HTTP 请求中那样在 URL 中传递数据。 也就是说,当使用 POST/PUT/PATCH 时,我建议使用 JSON 作为请求主体发送的有效载荷。

如果你想在 Slim 中阅读一个参数

<?php
$app->get('/hello/{name}', function (Request $request, Response $response, array $args) {

    $name = $args['name'];

    // or
    $name = $request->getArgument('name');

    // When Request URL is
    // /hello/world?age=24
    // you can read the age argument as
    $name = $request->getArgument('age');

    // This behaviour is defined in PSR-7 and available across PHP frameworks

    return $response;
});

在普通的 PHP 中,您可以使用超全局 $_GET 或 $_POST

读取参数
<?php
$name = $_GET['age'];

首先,创建一个路由来处理 POST 没有任何查询参数的 HTTP 请求。

$app->post('/add', function (Request $request, Response $response, array $args) {
    // get query parameters as an associative array
    $params = $request->getQueryParams();

    // return $params as a JSON data
    $response->getBody()->write(json_encode($params));
    return $response->withHeader('Content-Type', 'application/json');
});

然后,使用您的查询参数向该路由发出 POST HTTP 请求:/add?name=Foo&age=27.

输出:

{
    "name": "Foo",
    "age": "27"
}