ugrás a tartalomhoz

rest routing

inf · 2013. Okt. 22. (K), 15.57
Szeretnék rest routing-ot csinálni, úgy, hogy ne kelljen kézzel megadni a mapping-et, hanem teljesen automatikus legyen.

Két koncepció jutott eszembe:

1.)
Megadom annotációban minden resource osztály mellé, hogy milyen url template tartozik hozzá, ebből aztán generáltatok egy config fájlt, ami tartalmazza a mapping-et, ezt beolvasva fel tudja konfigolni a routert a rendszer, illetve meg tudja mondani egyes erőforrás példányokról, hogy milyen url tartozik hozzájuk.
  1. @url = /user/@id  
  2. class User implements Resource {  
  3. ...  
  4. }  
  5. $user = new User();  
  6. $user->setId(123);  
  7. $url = $user->getUrl();  
2.)
Az url-ben az egyes csomópontokat megfeleltetem egy-egy property-nek. Csinálok egy $api nevű változót, és egyesével lépkedve rajta a csomópontokon kikeresem az adott erőforrást.
  1. $user = $api->user->_id(123);  
  2. $url = $user->_url();  
Ez routing-ban gyorsabb, mint a hagyományos megoldás, viszont ahhoz, hogy resource példányokat lehessen csinálni az adatbázisból vagy az input-ból érkező adatok alapján, végig kell lépdelni minden alkalommal a csomópontokon.

Szerintetek melyik a jobb megoldás?
(az autocomplete mindkét típusú kódra megoldható...)