大多数前端应用需要通过HTTP协议与服务器进行通信,下载或上传数据以及访问其他后端服务,而SAPE-CommerceCloudSpartacusUI是没有例外。Angular为Angular应用程序提供了客户端HTTPAPI,即开发包@angular/common/http中的HttpClient服务类。HTTP客户端服务提供以下主要功能。请求类型化响应对象(typedresponseobjects)的能力SimplifiederrorhandlingTestabilityfeatures请求和响应拦截下图是SpartacusOCCAdapter实现中HTTPClient的导入:在使用HttpClient之前,需要导入AngularHttpClientModule。大多数应用程序在根AppModule中执行此操作。从'@angular/core'导入{NgModule};从'@angular/platform-b??rowser'导入{BrowserModule};从'@angular/common/http'导入{HttpClientModule};@NgModule({导入:[BrowserModule,//importHttpClientModuleafterBrowserModule.HttpClientModule,],declarations:[AppComponent,],bootstrap:[AppComponent]})exportclassAppModule{}SAPSpartacus示例:从服务器请求数据使用HttpClient.get()方法获取数据从服务器。异步方法发送一个HTTP请求并返回一个Observable,当客户端实际收到来自服务器的响应时,该Observable发出请求的数据。返回类型因您传递给调用的Observation和Response类型值而异。get()方法有两个参数;要从中获取的端点URL,以及用于配置请求的选项对象。options的参数定义:options:{headers?:HttpHeaders|{[标题:字符串]:字符串|string[]},观察?:'body'|'事件'|'response',params?:HttpParams|{[param:string]:string|编号|布尔|只读数组<字符串|编号|boolean>},reportProgress?:boolean,responseType?:'arraybuffer'|'blob'|'json'|'text',withCredentials?:boolean,}下图是Spartacus通过HTTPClient获取语言列表的代码:因为服务方法返回一个配置数据的Observable,所以组件订阅了该方法的返回值。订阅回调执行最少的后处理。它将数据字段复制到组件的配置对象中,该对象在组件的模板中进行数据绑定以供显示。代码如下:showConfig(){this.configService.getConfig().subscribe((data:Config)=>this.config={heroesUrl:data.heroesUrl,textfile:data.textfile,date:data.date,});}
