【发布时间】:2020-06-05 09:54:56
【问题描述】:
注意:TL;DR 在底部 :)
在我目前的工作场所,我们的 API 通常在 90% 的情况下返回 JSON 对象,但是某些更简单的端点当前返回简单的纯文本,示例端点是:
-
GET ../entity/lastChange(返回特定实体类型的最后更新日期时间) - 返回"2019-08-02 11:26:32.341817-07:00" -
GET ../css?platform=android(返回用于基于平台的动态样式的 CSS 内容)-返回".my-class { color: red; }"
我已阅读 REST 指南 (https://www.w3.org/Protocols/rfc2616/rfc2616.html),但实际上找不到任何相关信息。我还阅读了一些关于同一主题的帖子,但这些帖子似乎关注的是我们是否可以,而不是我们是否应该。
我在想的是,直接将结果作为字符串/纯文本获取通常很方便,但这通常会导致围绕脆弱架构或某些客户端的问题(例如,Angular HttpClient 期望有效要从所有端点返回的 JSON 对象)。我在想的是添加一个通用的SimplApiResult<T> { public T Result { get; set; } } 类,它可以跨多个 API 重复使用,以包装基本的响应类型。
TL;DR:简单的 RESTful 端点应该在适当的地方返回纯文本还是简单的 JSON 结构,例如:
- 纯文本
"2019-08-02 11:26:32.341817-07:00" - 简单的json
{ "result": "2019-08-02 11:26:32.341817-07:00" }
谢谢!!
【问题讨论】:
标签: .net json angular rest .net-core