#angular
#angular
Вопрос:
Как вернуть образец данных json в ответ вместо вызова фактического API. Я хочу протестировать свой код пользовательского интерфейса, фактически не вызывая внутренний API.У меня есть данные ответа, полученные из UAT, я добавил это в свой сервис и поместил файл json в ту же папку.
getdata(): Observable<any>{
return this.http.get<any>('keyinfoResponse.json')
.pipe(map((data)=>data),catchError((error)=>throwError(error)));
}
и в компоненте
this.dataService.getdata().subscribe((response) => {
this.keyInfoResponse = response;
}, (error) => {
this.hasErrorOccurred = true;
if (error.message) {
this.errorMessage = error.message;
}
});
}
ответ не определен.
Комментарии:
1. в чем проблема?
2. поместите json в папку «активы» и измените свой URL-адрес в службе на «assets / keyinfoResponse.json»
Ответ №1:
Для доступа к локальному.файл json с использованием HttpClient, местоположение файла должно быть включено в assets
свойство angular.json
file . По умолчанию (в большинстве случаев) src/assets
папка уже будет включена.
angular.json
{
...
"projects": {
"site": {
...
"architect": {
"build": {
...
"options": {
...
"assets": [
"src/assets"
],
Так что либо нужно разместить .файлы json в src/assets
папке или, если нет, добавьте их путь к исходной папке assets
в свойство.
Структура папок
src
├── app
├── assets
│ ├── keyinfoResponse.json
├── angular.json
├── index.html
...
Затем вы можете получить к ним доступ с помощью HttpClient следующим образом
getdata(): Observable<any> {
return this.http.get<any>('assets/keyinfoResponse.json').pipe(
map((data) => data),
catchError((error) => throwError(error))
);
}