在我们的应用程序中,我们具有2个功能:显示帖子的公开列表,以及显示我(已记录用户)帖子的列表。
在公开的帖子列表中,我们显示一些数据,而在我的帖子中,我们显示与公开+相同的信息,只有登录用户才可以看到的信息。
在这种情况下,根据REST,我们应该创建1个端点还是2个端点?
答案 0 :(得分:1)
在公开的帖子列表中,我们显示一些数据,而在我的帖子中,我们显示与公开+相同的信息,只有登录用户才可以看到的信息。
在REST中,资源为any information that can be named。您的描述听起来像两个不同的名称(事物的公共视图和事物的私有视图),因此拥有两个不同的资源可能是有意义的。
拥有两个不同的资源恰好共享同一表示(暂时或永久)没有什么“错”。
但是,您需要牢记-就通用客户端而言-两种资源是彼此无关的。如果我们成功地对一个资源提出了不安全的请求,则该资源的本地表示将被从缓存中逐出,而我们的 other 资源的本地表示将不被逐出。
换句话说,使用两种资源,您必须愿意接受它们并不总是彼此一致。
答案 1 :(得分:0)
我不确定我是否正确理解了您的问题/问题描述: 公开帖子列表-显示所有用户的帖子 我的(已记录用户)帖子列表的方式-显示帖子的过滤列表以及一些其他信息
从我的角度来看,您应该使用2个端点,因为它们返回不同的对象,不同的错误并且针对不同的用户。这样,在OpenAPI定义中编写起来将更加清晰和容易。同样,收到“未经授权”错误比获得仅包含一部分预期内容的响应更为明确。
/posts
/posts/{user_id}
,您可以在其中使用特殊的user_id =“ mine”