我正在使用微框架實現RESTful API資源體系結構。我使用最近開發的花式路由功能,與對象層次並行建模資源路徑。 (哦,看上!)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
我遇到的問題是最後一個,對匹配查詢數據的多個結果(SQL中的」拉LIKE
)這將是一個安全的字符表示通配符?星號(*
)出現在子分隔符保留列表http://labs.apache.org/webarch/uri/rfc/rfc3986.html#reserved,所以它將保持未編碼狀態。也許它會更容易使用%25(%
)
我明白這個問題可能是特定於實現的,但是是否有任何現有的框架實現了與此類似的RESTful API資源體系結構,以供我參考?
另外,我在這裏完全違反糧食嗎?
**感謝Darrel Miller; **重新考慮我的資源架構的建議已付諸實踐。我現在意識到這裏最有用的實現是* REST/RPC *混合,其中資源URI使用與頁面控制器的URI相同的體系結構,但API調用跳過頁面控制器並直接將JSON請求對象傳遞給Model ACL代理(網關)。 – Dan 2011-03-19 14:37:53