3

我想这与 API 的最佳实践有关。我正在考虑实现 API,但不确定是否需要在 API 设计中使用视图或将它们留给用户的前端实现。我认为在 API 中实现视图不是一个好主意,但如果知道通常会做什么,那就太好了。我认为 API 调用应该总是返回 JSON 或 XML;添加视图会使一切复杂化...

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

4

4 回答 4

2

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

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

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

于 2012-11-29T15:44:20.437 回答
0

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

于 2012-11-29T15:35:26.973 回答
0

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

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

这样想,你会注意到even和api项目都可以使用MVC。

有几个 gem 可以处理 api 项目上的视图,例如:rablactive_model_serializers

于 2012-11-29T15:54:41.163 回答
0

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

于 2012-11-29T15:55:38.263 回答