0

我已将该查询路由为用于打印作业的 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.

有没有人有一个很好的例子来说明如何做到这一点?

4

3 回答 3

0

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

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

于 2013-10-24T04:38:41.663 回答
0

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

$app->get('/prints(/:year)(/:month)(/:day)', function ($year = '', $month = '', $day = '') {
    printf('%s-%s-%s', $year, $month, $day);
});
于 2013-10-24T07:16:53.483 回答
0

基于当前官方 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
});
于 2014-06-17T19:47:41.417 回答