Есть ли способ избежать написания одного и того же кода в каждой службе.
У меня есть несколько служб для разных конечных точек API:
getLecturesData(orderBy?: string, orderDirection = 'asc', page = 1, pageSize = 10): Observable<LecturesData> {
let params = new HttpParams();
params = params.set('order_direction', orderDirection);
params = params.set('page', page.toString());
params = params.set('page_size', pageSize.toString());
if (orderBy) { params = params.set('order_by', orderBy); }
return this.http.get<LecturesData>('/api/lectures', {params});
}
getStudentsData(orderBy?: string, orderDirection = 'asc', page = 1, pageSize = 5): Observable<StudentsData> {
let params = new HttpParams();
params = params.set('order_direction', orderDirection);
params = params.set('page', page.toString());
params = params.set('page_size', pageSize.toString());
if (orderBy) { params = params.set('order_by', orderBy); }
return this.http.get<StudentsData>('/api/students', {params});
}
Как видите, код почти такой же, за исключением url
и type
возвращаемого значения. Можно ли поместить дублированную деталь в отдельную «вещь»?