我正在使用Java和Jersey开发REST Web服务器。这是我的第一个Web应用程序,我想确保我正在构建应用程序。我创建了第一个运行良好的函数:
@Path("/startAuto")
public class Rest {
@GET
public String startAuto() {
try {
ProcessBuilder pb = new ProcessBuilder("/startAuto.sh");
Process p = pb.start();
p.waitFor();
return ("Auto Started");
} catch (Exception e) {
e.printStackTrace();
return ("error");
}
}
}
我想添加一个像stopAuto
这样的新功能。
哪个更干净:在这个类中添加函数还是创建一个新类?
正如peeskillet在他的评论中指出的那样,这取决于你想要如何构建你的URL
如果你想要类似的东西
/ auto / start和
/自动/停止
我会按照以下结构编写一个类
@Path("/auto")
public class Rest {
@GET
@Path("/start")
public String startAuto() {
}
@GET
@Path("/stop")
public String stopAuto() {
}
}
良好的结构对于任何好的项目/产品都是必不可少的,但它也是一个问题,其答案因情况而异。但是,如果有疑问,一个好的起点是按照“职责”对端点进行分组。如果它们属于一起,则将它们放在同一个类中。
个人意见:Boundary-Control-Entity是我可以找到的最简单的起点,用于启动项目。然后结构根据需要进行调整。看看来自Adam Bien的article,了解更多想法。
通常,最好将与当前资源相关的另一个函数放入同一个类中。
但是你也应该记住,REST使用资源而不是函数(名词而不是动词)。因此,使API更加RESTfull可能是有意义的: