这是关于RESTful和HATEOAS设计的理论/最佳实践问题......
鉴于资源:
/ myresources /(我们的资源对象的集合)
和
/ transactions /(系统中发生的历史事务的集合)
这是一种有效的做法:
POST/myresources /
不仅要在/ myresources /创建一个新资源,还要在/ transactions /?创建一个新资源.
换句话说,一个URL的POST(或任何动词)是否可以影响该URL和其他URL的资源?还有另一种方法吗?显然我们可以使用两个POST,但这要求我们相信用户在多资源修改中保持有效状态.
是的,这很好.想象一下系统公开/myresources/latestURI的另一种情况.当没有资源时,可能会返回404,但是当您开始POST资源时,规范URI和latestURI都将返回200 OK.这种方法有许多有用的好处.
但是,在设计此类资源时请记住缓存./myresources/例如,如果您对集合进行POST,则在此过程中,您将在任何缓存中使该集合无效.但是,您不会使/transactions/集合无效,并且两个索引可能会不同步.无论如何,它们可能在整个系统中不同步,具体取决于多个客户端和源服务器之间的缓存图,但通常,客户端设计为期望远程的此操作是同步的,并且缓存可以在这样的情况下沮丧.
| 归档时间: |
|
| 查看次数: |
953 次 |
| 最近记录: |