Я настроил Swagger в своем приложении Feather. js, и оно автоматически генерирует документы для всех конечных точек для каждого сервиса. Теперь некоторые конечные точки в некоторых сервисах, которые я хочу исключить из генерации в качестве документов, потому что я просто запрещаю эти конечные точки или у меня есть скрытые логики c за ними, которые не позволяют external
звонки.
Fe У меня есть следующие настройки для конечных точек моего /users/me
сервиса:
before: {
all: [authenticate('jwt')],
find: [
/*
* We don't use an ID when calling `/users/me` like `/users/me/<id>`, and therefore Feathers understands the
* incoming request as a `find` method instead of `get`, therefore we simply redirect it internally.
*/
async context => {
context.result = await context.service.get(context.params.user.id); // eslint-disable-line
return context;
}
],
get: [
iff(isProvider('external'), disallow()),
includeGender()
],
create: [disallow()],
update: [setAuthenticatedUserId()],
patch: [setAuthenticatedUserId()],
remove: [setAuthenticatedUserId()]
}
Как вы можете видеть из настроек logi c, я хочу, чтобы генерировались следующие документы:
Я следовал этим документам относительно feathers-swagger
. Я использую schemasGenerator(service, model, modelName, schemas)
для создания документов для каждого сервиса. Понятно, что это будет генерировать одну и ту же схему документов для каждого сервиса. Я попытался добавить пользовательский материал согласно объяснениям модуля github, либо добавив объект docs
:
service.docs = {
...service.docs,
operations: {
find: false,
create: false
}
};
или добавив глобальный объект operations: { find: false, create: false }
в конфигурацию Swagger.
Первый вариант не имеет эффекта, а второй - применяет его ко всем конечным точкам, что мне не помогает.