我已将该查询路由为用于打印作业的 mysql 数据库
http://api.com/prints/
我想根据日期查询结果,所以...
http://api.com/prints/YYYY
或者
http://api.com/prints/YYYY/MM
或者
http://api.com/prints/YYYY/MM/DD
但使用相同的http://api.com/prints/
路线。每个印刷品都有一个TIMESTAMP
.
有没有人有一个很好的例子来说明如何做到这一点?
我会使用查询参数来实现这一点,即:
http://api.com/prints?timestamp=YYYY-MM-DD
在可选参数上,您需要使用括号:
$app->get('/prints(/:year)(/:month)(/:day)', function ($year = '', $month = '', $day = '') {
printf('%s-%s-%s', $year, $month, $day);
});
基于当前官方 Slim 文档中的示例:
$app->get('/prints(/:year(/:month(/:day)))', function ($year = null, $month = null, $day = null) {
if ($day !== null) {
// return daily overview resource
} else if ($month !== null) {
// return monthly overview resource
} else {
// return yearly overview resource
}
// return some error or (better) overview resource on available data / endpoints
});