【发布时间】:2017-06-10 04:14:13
【问题描述】:
我想在 Restler 补丁方法中将参数标记为可选,它是字符串类型,但我不知道如何执行此操作。如果我将$description = null 作为参数,则路由器将失败,并显示一条消息称description 是必需参数。
我也不能只使用空字符串,因为这是一种 PATCH 类型的方法,所以我必须能够通过传递一个空字符串和一个空值来区分它们是否希望删除描述,这意味着它们没有'不传递任何更新。
【问题讨论】:
我想在 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 启动 Web 服务器。使用http://localhost/explorer 启动资源管理器,然后使用以下json 测试patch 方法
{
"name": "arul"
}
api结果是
{
"name": "arul",
"description": null
}
预期的结果是什么
【讨论】: