Я изо всех сил пытаюсь заставить Feathers in Angular работать против REST-сервера Feathers. Похоже, что он не отправляет запрос.
У меня есть сервер Feathers с ресурсом http://example.com/app/experiences, который возвращает данные в формате с разбивкой на перья:
{
"total": 1,
"limit": 10,
"skip": 0,
"data": [
{
"_id": "5db5ef8dc64f59001d750c72",
... etc ..,
}
]
На клиенте яу меня есть служба Feathers, которая централизует конфигурацию всех служб:
@Injectable()
export class Feathers {
private _feathers = feathers();
private feathersRestClient = feathersRestClient('http://example.com/app');
constructor() {
this._feathers
.configure(this.feathersRestClient.angular)
.configure(rx({
idField: '_id'
}));
this._feathers.use('/experiences', new FeathersGenericService());
}
// expose services
public service(name: string) {
return this._feathers.service(name);
}
}
FeathersGenericService - это просто обобщенный класс, полученный из https://docs.feathersjs.com/guides/basics/services.html#service-methods:
export class FeathersGenericService implements ServiceMethods<any> {
async find(params: Params) {}
async get(id: Id, params: Params) {}
async create(data: any, params: Params) {}
async update(id: NullableId, data: any, params: Params) {}
async patch(id: NullableId, data: any, params: Params) {}
async remove(id: NullableId, params: Params) {}
}
Тогда у меня есть простой ExperienceService, который просто находитпервые 25 результатов:
export class ExperienceService {
constructor(private feathers: Feathers) { }
experiences$() {
return from((this.feathers
.service('experiences'))
.watch()
.find({
query: {
$limit: 25
}
}));
}
}
И, наконец, компонент:
export class ExperienceListComponent implements OnInit {
experiences$: Observable<any[]>;
constructor(private eservice: ExperienceService) {}
ngOnInit() {
this.eservice.experiences$().subscribe(res => {
console.log(res);
return res;
});
}
}
Как бы то ни было, "res" не определено ... На вкладке сети я не вижу запроса к APIбыло сделано.
Что я делаю не так?
РЕДАКТИРОВАТЬ : я создал этот Stackblitz: https://stackblitz.com/edit/angular-qfysld
Есть ошибка со Stackblitz и Feathers,поэтому он не компилируется, но компилируется в локальный файл после загрузки.