BooGoo
by thinker
最後更新時間: 2007-02-08 21:43:33 CST | 引用
查詢:
COMMENTS:
on 2007-02-09 23:22:53 CST
遊手好閒的石頭成 said ..
view_page() 的調用 service 的格式,和底下的部份 (像 REST 的) 不一致喔。 這樣會不會變成 view_page() 用得是一套, REST 用得是另一套?我是兩種都接受,用 URI 時這樣做: http://example.com/className/methodName/argname1/argvalue1/argname2/argvalue2 。argname 和 argvalue 的順序可以隨意放。只看true/false的argument,可以只寫argname。 以前用 php 實作的方式: http://blog.roodo.com/rocksaying/archives/2633503.html#comment-3838830
on 2007-02-10 01:12:43 CST
Thinker said ..
這個部分我保留了彈性,如果是使用 REST 格式,就必需自行組成 URL 的 path。在我自己的實驗和試作中,都是使用 path 而非參數的方式傳遞。因為 REST 型式的 URL ,是做為 resource 的 id ,其 path portion 的次序是有意義的,不適合任意變動。況且, URI 往往有階層性的,例如 board A 的 msg N ,組成 http://server/boards/A/N 其次序是有階層性的意義。因此,view_page() 時,URL 以 join 的方式產生 ["...", "boo"].join("/") 。這樣應該比較合適。
on 2007-02-10 01:23:27 CST
Thinker said ..
["http://server/base/path", "value1", "value2"].join("/") 在 server 端使用 ez_web 時,透過 kit.path_consumer 可依次序,成為 process() 的 argument。 這也是 kit.path_consumer 存在的價值。
on 2007-02-10 09:57:46 CST
遊手好閒的石頭成 said ..
我記得 Python 的引數可以用 Keyword Arguments 而無視次序。應該不用像 PHP 要動用 Reflection class 探查參數次序吧?
on 2007-02-10 10:40:36 CST
Thinker said ..
是啊... Python 有 keyword argument,但我希望能保留 URI 的單一性,和 path 的階層關係。而且,固定的次序,對 application programmer 似乎比較單純一點。 固定次序其實還有其它好處,debug 時比較不會眼花看錯,log 的分析較容易。這些都能減輕 programmer 的負擔。這是我設計時,依經驗而產生的考量。或許不完全正確,但會隨者時間修正。