0
저는 Angular가 새로 도입되었지만 매우 간단한 것을 만들었습니다. (나는 할 수 없습니다) ... 나는 통신하는 '기본 서비스'를 만들고 싶습니다. 내 API를 백엔드하지만 세트 전에 몇 가지 물건 (그래서 헤더 변수 ... 등) ... 서비스 API와 통신이 '기본 서비스'를 호출해야 다른 모든 ... 여기 내 코드 :각도 4/5 HttpClient 맞춤 서비스
import { Injectable } from '@angular/core';
import { HttpClient, HttpRequest, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs/Rx';
import { responseModel } from '../models/response.model';
@Injectable()
export class BaseService {
public headers: HttpHeaders;
constructor(private _http: HttpClient) {
this.headers = new HttpHeaders();
this.headers.append('Accept', 'application/json, */*');
this.headers.append('Content-Type', 'application/json;charset=UTF-8');
}
private callBackEnd(relativeEndPoint: string,reqMethod: string,
reqParams?: HttpParams, objBody?: any): Observable<responseModel> {
const reqUrl = 'https://mypath/' + relativeEndPoint;
return this._http.request<responseModel>(reqMethod, reqUrl,
{
body: objBody,
headers: this.headers,
params: reqParams,
responseType: 'json',
withCredentials: true
}
);
}
handleError(error: any): Observable<responseModel> {
const out: responseModel= {
error: !error.ok,
code: "10",
message: "no connection",
more_info: "[email protected]",
response: {}
}
return Observable.create(observer => {
observer.next(out);
observer.complete();
});
}
}
아주 간단합니다 ... 'BaseService'의 DI 거기에있는 모든 서비스는
/*IMPORT EVERYTHING*/
@Injectable()
export class CustomService {
constructor(private _http: BaseService) {
}
examplefunction(): Observable<responseModel>
{
return this._http.callBackEnd('/user/', 'GET')
.map(
response => {
console.log(JSON.stringify(response));
return response;
}
)
}
}
내가 간단한 구성 요소를 만들 호출 할 수 있습니다
import { Component, OnInit } from '@angular/core';
import { CustomService } from './CustomService.service';
import { responseBE } from '../global/models/response.model';
@Component({
selector: 'app-simple',
templateUrl: './simple.component.html',
styleUrls: ['./simple.component.css']
})
export class SimpleComponent implements OnInit {
constructor(private _service: CustomService) { }
ngOnInit() {
this._service.examplefunction()
.map(res => {
console.log(res);
});
}
}
하지만 아무것도 작동 :(
어떤 생각?
JS 오류가 있습니까? – mickaelw
아무것도 ... 모든 것이 완벽 해 보이지만 요청을받지 못하는 것 같습니다. – teoooo78
, BaseService의 callBackEnd가 비공개이기 때문에 이상합니다. 그래서, CustomService에 액세스 할 수 없습니다. – mickaelw