Zum Beispiel diese Route
GET /users/{id}/comments
Angenommen, es gibt ein Message Board auf der Seite des Benutzers und wir planen, eine Kommentarkomponente zu verwenden
Die von Benutzern in einigen Beiträgen geposteten Antworten verwenden diese ebenfalls Kommentarkomponente
Datenbankdesign Wenn die beiden Kommentarkomponenten dieselbe Datentabelle verwenden (polymorphe Assoziation) (machen Sie sich darüber keine Sorgen)
Der Punkt ist, dass diese Route widersprüchliche Bedeutungen hat:
Was angezeigt wird, ist das Benutzer-Forum (gepostet von andere)
Oder die Antworten des Benutzers im Beitrag anzeigen
Also, wie kann man dieses Problem lösen und diese beiden Routen in Form von Erholung unterscheiden?
Tut mir leid, ich bin eine Jungfrau... (Aber ich möchte auch die beste Lösung für dieses Problem finden)
Eigentlich gibt es ein anderes Szenario für dieses Problem, nämlich wie man zwischen denen, die mir folgen, und denen, die mir folgen, unterscheiden kann.
GET /users/{id}/follows
Zeigt diese Route diejenigen an, denen ich folge oder die mir folgen?
对于你的第一个场景,我觉得在数据表里肯定会有一个字段标识出事用户留言板的还是用户帖子中的,这个字段我暂称为
type
,所以可以写成GET /users/{id}/comments/{type}
另一个场景,可以用参数
type
指定是我关注的还是关注我的,可以写作GET /users/{id}/follows/{type}
当然还有另外一种方法,把我关注的和关注我的分开
给用户留言和给帖子留言是操作 2 个不同的资源,资源用 URI 来定位,不同的资源使用不同的 URI,你使用相同的 URI 来操作不同的资源,这是不对的。
用户页面的留言板你可以使用message嘛
followers是关注我的
following是我关注的
多给几个英文单词不就行了。
我看题主还不太像改名。其实吧,改名 第一个原因是它能从根本上解决问题;第二个原因是,方便后续维护者,使用容易混淆的名字迟早是会出问题。