Итак, поддержка REST из перьев на самом деле не делает то, что вы хотите.
Если вы передадите службу Feathers app.use
, она будет доступна как часть экосистемы перехватчиков и т. Д. Если вы просто перейдете к службам Express (или сделаете это косвенно, как applyMiddleware
), то Feathers пропустит Это. Он зарегистрирован в Express, но его нет в списке услуг Feathers в app.services
.
Вы можете зарегистрировать службы в Feathers, которые объединяют промежуточное программное обеспечение Express-типа и службы Feathers, например:
app.use('/thing',
(req, res, next) => {
// does something
next();
},
{
get(id, params) {
// feathers stuff
}
}
);
В этот момент весь сервис доступен для экосистемы перьев, хуков и т. Д.
Что вы можете сделать, это что-то вроде:
server.applyMiddleware({ app, path: 'graphql' });
app.use('graphql', {
create(data, params) {
},
get(id, params) {
},
find(params) {
},
update(id, data, params) {
},
patch(id, data, params) {
},
delete(id, params) {
}
});
app.service('graphql').hooks(hooks);
к цепочечным (безоперационным) сервисам ПОСЛЕ настройки /graphql
, но я не уверен, что вам не придется вводить какую-то логику в эти сервисы, чтобы корректно обрабатывать данные. Помните, что сервисы перьев предполагают JSON и т. Д.
Другим вариантом является проверка вашего токена авторизации (я полагаю, что JWT от authentication-jwt?) В промежуточном программном обеспечении Express для содержимого graphql, и вообще не пытаться использовать службу / graphql в Feather-ize.