首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring RESTful最佳实践-需要的示例/教程

Spring RESTful最佳实践-需要的示例/教程
EN

Stack Overflow用户
提问于 2014-04-26 03:47:28
回答 1查看 12.4K关注 0票数 7

小故事:我正在寻找具有RESTful服务设计“最佳实践”示例的教程或github项目。

长话短说:我正在学习设计和实现web服务的“官方”Spring教程:http://spring.io/guides/tutorials/rest

它有一个小项目的例子。他们在这个项目中使用了“六边形架构”和一堆“事件”类。在经历它的过程中,我不禁注意到,对于一个示例项目来说,它似乎过于工程化了。有超过50个类,不包括测试。这真的是这种服务的“最佳实践”吗?如果没有,有没有其他更好的例子?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-26 04:31:52

我不能向您推荐教程,但是可以根据使用Spring MVC编写RESTful服务的经验来提到一些事情。

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

https://stackoverflow.com/questions/23301733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档