私は角4のアプリケーションで作業しています。私はhtpInterceptor Typescriptの一般的なGET、POST、およびDELETE関数を持つ基本サービスクラスを持っています。私はすべての角度のあるサービスにこの基本クラスを使用したい。今、私はこの基本サービスをすべてのサービスに注入するべきかどうか、またはすべてのサービスクラスをこの基本サービスクラスで拡張すべきかどうかはわかりません。これら二つのアプローチの違い(長所と短所)とは何であるベースクラスを拡張してTypescriptでそれを挿入する
私が使うべき、 export class AuthService extends HttpInterceptorService
OR constructor(private _interceptor:HttpInterceptorService) { }
。続き
は、あなたが角度のDIに頼る輸入サービスでは
@Injectable()
export class HttpInterceptorService {
constructor(private _http: Http) { }
get<T>(relativeUrl: ApiUrl): Observable<T> {
const baseUrl = environment.apiBaseUrl + environment.apiLearnerUrl;
let apiUrl = baseUrl + relativeUrl.toString();
return this._http.get(apiUrl).map(res => <T>res.json());
}
post<T>(relativeUrl: ApiUrl, inputData: any): Observable<T> {
const baseUrl = environment.apiBaseUrl + environment.apiLearnerUrl;
let apiUrl = baseUrl + relativeUrl.toString();
if (inputData === undefined) {
return this._http.post(apiUrl, undefined).map(res => <T>res.json());
}
else {
return this._http.post(apiUrl, inputData).map(res => <T>res.json());
}
}
delete<T>(relativeUrl: string): Observable<T> {
const baseUrl = environment.apiBaseUrl + environment.apiLearnerUrl;
let apiUrl = baseUrl + relativeUrl;
return this._http.delete(apiUrl).map(res => <T>res.json());
}
}
Angular 4.3以降で利用可能な最新の 'HttpClient'に移行し、容易に利用できる[' HttpInterceptor'](https://angular.io/guide/http#advanced-usage)を使用しましたか? @ R。 –
Richardsのプロジェクトではまだ4.2の角度を使用していますが、今後数ヶ月で4.3に移行する予定です。 – Akash