Restler 可选字符串参数
Restler optional string parameter
我想在 Restler 补丁方法中将一个参数标记为可选,并且它是字符串类型,但我不知道该怎么做。如果我将 $description = null
作为参数,那么路由器会失败并显示一条消息说 description
是必需的参数。
我不能只使用空字符串,因为这是一个 PATCH 类型的方法,所以我必须能够区分它们是想通过传递空字符串还是空值来清空描述他们没有传递任何更新。
保持 $description
到 null
效果很好。只需确保所有可选参数都出现在 api 方法中的必需参数之后。这是一个 php 限制。
这是我测试的方法
composer create-project restler/application=dev-basic rest
创建一个基本的 restler 项目。然后编辑rest/src/Home.php添加补丁方法
<?php
class Home
{
public function index()
{
return [
'success' => [
'code' => 200,
'message' => 'Restler is up and running!',
],
];
}
public function patch($name, $description = null)
{
return compact('name', 'description');
}
}
在命令行上使用 php serve
启动了网络服务器。使用 http://localhost/explorer 启动资源管理器,然后使用以下 json
测试补丁方法
{
"name": "arul"
}
api 结果是
{
"name": "arul",
"description": null
}
这是预期的结果
我想在 Restler 补丁方法中将一个参数标记为可选,并且它是字符串类型,但我不知道该怎么做。如果我将 $description = null
作为参数,那么路由器会失败并显示一条消息说 description
是必需的参数。
我不能只使用空字符串,因为这是一个 PATCH 类型的方法,所以我必须能够区分它们是想通过传递空字符串还是空值来清空描述他们没有传递任何更新。
保持 $description
到 null
效果很好。只需确保所有可选参数都出现在 api 方法中的必需参数之后。这是一个 php 限制。
这是我测试的方法
composer create-project restler/application=dev-basic rest
创建一个基本的 restler 项目。然后编辑rest/src/Home.php添加补丁方法
<?php
class Home
{
public function index()
{
return [
'success' => [
'code' => 200,
'message' => 'Restler is up and running!',
],
];
}
public function patch($name, $description = null)
{
return compact('name', 'description');
}
}
在命令行上使用 php serve
启动了网络服务器。使用 http://localhost/explorer 启动资源管理器,然后使用以下 json
{
"name": "arul"
}
api 结果是
{
"name": "arul",
"description": null
}
这是预期的结果