具有可选日期参数的REST路由

时间:2013-10-24 03:20:10

标签: php mysql rest date slim

我的路由是查询是打印作业的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

有没有人有如何实现这一目标的好例子?

3 个答案:

答案 0 :(得分:0)

我使用查询参数来实现这一点,即:

http://api.com/prints?timestamp=YYYY-MM-DD

答案 1 :(得分:0)

在可选参数上,您需要使用括号:

$app->get('/prints(/:year)(/:month)(/:day)', function ($year = '', $month = '', $day = '') {
    printf('%s-%s-%s', $year, $month, $day);
});

答案 2 :(得分:0)

基于当前official Slim documentation中的示例:

$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
});