我不能向您推荐教程,但是可以根据使用Spring MVC编写RESTful服务的经验来提到一些事情。
- 将控制器从业务逻辑中分离出来。在控制器中要考虑的问题:最重要的是错误处理,还有潜在的授权。控制器方法最初可能非常简单,只是分派到相应的业务逻辑方法。这不是一件坏事,很快你的控制器就会随着错误处理的接口clients.
- speaking的问题而增长,在RESTful服务中很难做到这一点。您肯定需要有一种方法来通过结构化数据很好地通知客户错误。我想,这应该是你所有回复的一部分。你需要决定哪些错误你发送回信息,哪些你保持沉默,只是记录,等等。
- 很可能你会有一些数据对象,用于你得到的请求,以及你发送的响应。将它们打包在单独的jar中。添加到这个jar接口,由您的控制器实现。还要添加这些接口的第二个简单实现,用于调用您的服务。在这里,您有一个客户端库。
- 即使你现在有了一个很好的Java客户端库,也不要忘记用curl测试你的服务,并记录如何通过简单的调用来使用它。
- 有各种各样的库可以用来“单元”测试控制器,这些库或多或少地模拟了web服务器的内部结构。这些是非常有用的,但不要局限于它们。有一个qa环境,你可以在其中完全部署你的服务,并有一个qa应用程序,它可以向qa环境中的服务实例发送真正完全成熟的请求,并分析它们的responses.
- Try,以便在不同的调用中保持简单和一致。例如,每个响应可以包含相同的“错误”部分,具有相同的字段,以结构化的编程可用形式提供关于哪里出了问题的信息。
- REST是一个很好的抽象,但有其局限性:在实践中,/delete.json?id=3对不同的服务可能有非常不同的影响。不要期望你的客户能够猜出"add“和"delete”在你的特定情况下意味着什么,因为他们的猜测可能与你的预期不同。相反,在您的文档中提供一些关于您的服务将在幕后做什么的信息。我们还没有达到这样的阶段,我们能够让组件通过一个非常薄的接口进行通信,对它们的内部结构保持不可知,unfortunately.