在 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"
}
我正在创建一个 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"
}