【发布时间】:2020-05-13 17:41:18
【问题描述】:
官方 angularHttpClient guide 建议通过以下方式构建 HTTP 请求服务:
getConfig() {
// now returns an Observable of Config
return this.http.get<Config>(this.configUrl);
}
同时还提供以下免责声明:
指定响应类型是向 TypeScript 声明它 应该将您的响应视为给定类型。这是一个 构建时检查,并不能保证服务器实际上会 用这种类型的对象响应。由服务器来确保 即返回服务器 API 指定的类型。
虽然我喜欢让服务返回定义明确的类型的主要概念,但免责声明表明这还没有完全适用于现实世界,没有人可以依赖某些外部软件系统的响应格式.
在 Angular 中实现 HTTP 请求服务的最佳实践是什么?该服务将可靠地返回预期类型的对象(在当前示例中为 Config)或提供处理错误的方法?
【问题讨论】:
-
当然它已经为现实世界做好了准备。当服务器由于某种原因而关闭时,您将不会获得任何配置文件,您只会收到 404 错误。这就是本段的意思。
-
在我的项目中(我同时控制服务器端和客户端),由于以下原因,我发现有必要对响应进行管道和转换: 1. 我想要一个类,而不是返回一个接口。 2. Json 类型与预期类型不匹配。我相信响应可以以类似的方式处理:管道响应并添加验证(或者,如果您打算使用类,则可以在构造函数中执行此操作)
标签: angular typescript angular-httpclient type-safety