我有一个网络 api 调用。但是有身份证。
我有这个:
private readonly apiDiploma = 'api/support/teachers/personId';
然后我像这样调用此方法:
return this.http.get<DiplomaModel>(this.apiDiploma, spinnerMessage).pipe(map(result => result.documents));
但这行不通。但例如,如果我这样做:
private readonly apiDiploma = 'api/support/teachers/1001/diploma/';
所以 PersonId 硬编码。它有效。
那么我必须改变什么?
谢谢
这是 API 方法:
private readonly apiDiploma = 'api/support/teachers/personId/diploma/';
所以我需要来自以下位置的 PersonId:
export class TeacherSearchModel {
personId: number;
name: string;
dateOfBirth: string;
bsn: string;
registerNumber: string;
}
但是如果我这样做:
private readonly apiDiploma = 'api/support/teachers/${personId}/diploma';
然后这个:
getDiplomaDocumentList(spinnerMessage?: string): Observable<DocumentListModel> {
// Get and return diploma info from backend
return this.http.get<DiplomaModel>(this.apiDiploma, spinnerMessage).pipe(map(result => result.documents));
}
我仍然收到错误:
GET http://localhost:6597/api/support/teachers/$%7BpersonId%7D/diploma 400 (Bad Request)
scheduleTask @ zone.js:3243
push.../../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask @ zone.js:410
假设personId
是一个包含人员ID的变量,只需personId
连接到您的URL:'api/support/teachers/' + personId;
或'api/support/teachers/${personId}';
。
你应该声明一个名为personId
的属性,你可以根据你的需要/逻辑为它赋值。 使用 ES6 模板文本${this.apiDiploma}${this.personid}
进行服务调用时,使用personId
替换apiDiploma
中的 Person ID
private readonly apiDiploma = 'api/support/personid/diploma/';
personiId = '1234'; //you can change the personid dynamically.
return this.http.get<DiplomaModel>(this.apiDiploma.replace('personid',this.personid), spinnerMessage).pipe(map(result => result.documents));