【发布时间】:2020-10-08 05:39:00
【问题描述】:
我正在使用 HttpClient 在 Angular 中设计 Api 端点。这是一个将处理所有 Rest 调用的单个服务类,它将从其他服务类(当前正在进行 Rest 调用)中调用。
制作通用 Rest 方法的最佳做法是什么。
getApi(url: string, options?: object): Observable<any> {
return this.http.get<any>(url, options).pipe(
catchError((error: HttpErrorResponse) => {
return throwError(error);
})
)
}
或者
getApi<T>(url: string, options?: object): Observable<T> {
return this.http.get<T>(url, options).pipe(
catchError((error: HttpErrorResponse) => {
return throwError(error);
})
)
}
以上任何一个都可以处理:HttpEvent、HttpResponse或其他类似的响应吗?
我应该多方法处理吗?
【问题讨论】:
-
你需要知道any和
类型的区别。在这里查看答案stackoverflow.com/questions/44023061/…。就个人而言,我更喜欢使用 并避免使用多少。但是,在某些情况下,这是不可能的 -
当你不能使用
T时,只能使用any。 -
为什么你不直接使用 HttpClient ?
-
@bubbles 现在每个服务都在使用 HttpClient 调用 api,但我希望在其之上有一个包装器,以便所有 Rest 调用都可以从一个通用服务类完成。
-
@Ben 如果我们使用
来定义类型,我们可以传递 对吗? function identity (arg: T): T { return arg; } 常量 v: 任意 = 身份(988);所以我认为用通用 定义将是一个更好的选择!请让我知道你的想法我对角度和打字稿很陌生
标签: angular typescript rxjs