我有一个网络api呼叫。但是带有ID。
我有这个:
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
答案 0 :(得分:0)
假设personId
是一个包含人员ID的变量,只需将personId
链接到您的URL:'api/support/teachers/' + personId;
或'api/support/teachers/${personId}';
。
答案 1 :(得分:0)
您应该声明一个名为personId
的属性,您可以根据需要/逻辑为其分配值。使用es6模板文字apiDiploma
进行服务调用时,使用personId
替换${this.apiDiploma}${this.personid}
中的personid
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));