搜尋

首頁  >  問答  >  主體

php - restful形式的路由的命名重複怎麼辦?

例如這個路由
GET /users/{id}/comments
現在說用戶的頁面上有一個留言板,打算使用一個comment組件
用戶在一些帖子中發布的回复,使用的也是這個comment元件
資料庫設計的時候這兩個comment元件使用的是同一個資料表(多態關聯)(這點倒是不必擔心)
重點就是說,這個路由就意義衝突了:
顯示的是用戶留言板(別人發的)呢
還是顯示用戶在貼文中的回覆呢

所以說,如何解決這個問題,以restful的形式,區分開這兩個路由

抱歉,我是處女座、、、(但是說也想找到這個問題的最佳解決方式)

其實說,這個問題還有另外一個場景,就是說如何區分follow的我關注的和關注我的。
GET /users/{id}/follows
這條路由是顯示我關注的呢還是關注我的呢

黄舟黄舟2720 天前888

全部回覆(3)我來回復

  • 为情所困

    为情所困2017-06-20 10:09:20

    對於你的第一個場景,我覺得在數據表里肯定會有一個字段標識出事用戶留言板的還是用戶帖子中的,這個字段我暫稱為type,所以可以寫成GET /users/ {id}/comments/{type}

    另一個場景,可以用參數type指定是我關注的還是關注我的,可以寫作GET /users/{id}/follows/{type}
    當然還有另一種方法,把我關注的和關注我的分開

    GET /users/{id}/follows -> 我关注的
    GET /users/{id}/followers -> 关注我的

    回覆
    0
  • 学习ing

    学习ing2017-06-20 10:09:20

    給用戶留言和給帖子留言是操作 2 個不同的資源,資源用 URI 來定位,不同的資源使用不同的 URI,你使用相同的 URI 來操作不同的資源,這是不對的。

    回覆
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-20 10:09:20

    用戶頁面的留言板你可以使用message嘛
    followers是關注我的
    following是我關注的
    多給幾個英文單字不就行了。

    我看題主還不太像改名。其實吧,改名 第一個原因是它能從根本上解決問題;第二個原因是,方便後續維護者,使用容易混淆的名字遲早是會出問題。

    回覆
    0
  • 取消回覆