我们创建了一个资源,例如:@Path("whatever")public class WhateverResource {@POSTpublic Response createWhatever(CreateBean bean) { ...@DELETE@Path("/{uuid}")public void deleteWhatever(@PathParam("uuid") UUID uuid) { ...等等 GET、PUT、HEAD。现在我们认为我们认为我们需要检查底层功能是否实际启用。一次检查,当它失败时,所有操作都应该简单地导致 501。我的第一个想法是复制现有资源,例如:@Path("whatever")public class WhateverResourceIsntAvailable {@POSTpublic Response createWhatever(CreateBean bean) { throw 501@DELETE@Path("/{uuid}")public void deleteWhatever(@PathParam("uuid") UUID uuid) { throw 501因此,两个资源都指定了完全相同的操作。导致我们无法(轻松)在需要注册资源的时间点调用该检查的问题。除此之外,这种重复看起来不是很优雅,我想知道是否有一种“更规范”的方法来解决这个问题?编辑:另一种选择是将检查添加到现有资源中,添加到每个资源中,但这意味着:对每个操作进行检查。添加新操作时很容易忘记这一点。我设想有这样的事情:一个“基础资源”,被注册当对该资源调用任何操作时,该请求应该被“委托”,具体取决于该底层功能要么是一个总是给 501 的资源或执行真正工作的“真实”资源理想情况下,无需重复检查代码或重复操作端点规范。
添加回答
举报
0/150
提交
取消