是否应在RESTful API中使用视图

时间:2012-11-29 15:26:48

标签: api rest

我想这与API的最佳实践有关。我正在寻找实现API,并不确定我是否需要在API设计中使用视图或将它们留给用户的前端实现。我不认为在API中实现视图是个好主意,但知道通常做什么会很好。我认为API调用应始终返回JSON或XML;添加视图会使一切变得复杂......

您是否在API中使用视图,是/否,为什么?

4 个答案:

答案 0 :(得分:2)

API代表应用程序编程接口。它是您的应用程序公开的东西,可以调用它与它进行交互。 REST是一种哲学,它不告诉你如何设计你的应用程序,只是定义一个通信结构(资源,表示,动词,名词)。

视图不是REST中的概念,但在最常见的情况下,视图将是REST中资源的表示。虽然服务器可以直接返回此视图表示,但大多数开发人员更喜欢仅返回数据并分离可视化。

如果您的API返回HTML,那不会违反REST,但会引入用户界面和应用程序数据之间的耦合。我建议你不要这样做,不是因为REST,而是因为你违反了基本的软件设计原则。

答案 1 :(得分:0)

对于我的REST API,只有JSON数据。 在REST API中,您必须返回JSON或XML,因为您的API需要与前端实现无关。

答案 2 :(得分:0)

您建议的视图只是html类型的视图。但是视图也可以是json,xml和许多其他类型。

View是资源的表示。是您导出应用程序处理的数据的方式。

这样思考,你会注意到即使和api项目也可以使用MVC。

有一些宝石可以处理api项目的观点,例如:rablactive_model_serializers

答案 3 :(得分:0)

答案是肯定的,不是。输出简单的机器可解析格式(XML,JSON,CSV)的REST API不需要视图,但如果API用户能够以人类可读的格式查看输出,它可以帮助API用户,以便他们可以使用它来验证输出他们的应用程序使用REST API。它也是一个有效的选项,如果您通过处理模型中的数据处理来最小化代码重复,并且您有单独的JSON / XML REST API视图和另一个供人类使用的视图。在这种情况下,“视图”将模型创建/检索的对象转换为各种输出格式,供各种消费者使用 - 包括人工和程序化。