我正在我的微框架中实现一个 RESTful API 资源架构。我正在建模我的资源路径与对象层次结构并行,利用我最近开发的奇特的路由功能。(哦,这很花哨!)
我使用的 URI 语法是:
'http:// www.site.com / resource [ ; key1 = param1 [ & key2 = param2 ] ]'
这将允许这样的 URI:
'http://www.site.com/user;id=123/article;id=456'
映射到类似的东西(一旦我将此功能合并到路由器中):
$user->getByParams('id=123')->article->getByParams('id=456');
所以更多的例子:
'GET /user;id=123 GET'
# read User object data matching id=123
'GET /user;id=123/article;id=456'
# read Article object data matching id=456
# belonging to User object matching id=123
'GET /user;name=john&age=20/article;title=hello%20world'
# read Article object(s) data matching title='hello world'
# belonging to User object(s) matching name='john' and age=20
我遇到的问题是最后一个问题,将多个结果与查询数据匹配(a' la LIKE
in SQL)什么是表示通配符的安全字符?星号 ( *
) 出现在此处http://labs.apache.org/webarch/uri/rfc/rfc3986.html#reserved的子分隔符保留列表中,因此它将保持未编码。也许使用 %25 ( %
)会更容易
我知道这个问题可能是特定于实现的,但是是否有任何现有的框架可以实现与此类似的 RESTful API 资源架构,我可以参考这些框架来获取想法?
另外,我在这里完全违背粮食吗?