Flask RestPlus / RestX: как я могу поделиться моделями API между пространствами имен? - PullRequest
0 голосов
/ 24 марта 2020

В моем приложении Flask -RestX есть следующая структура:

  • api_models
    • пользователи
    • права доступа
  • пространства имен
    • пользователи
    • права доступа

У меня Разрешение_модели в api_models / permissions , который я хочу использовать в user_model в api_models / users . Вариант использования:

Модель разрешения: api_models / permissions.py )

permission_model = permission_api.model('Permission', {
    "id": fields.String(description="Permission ID", required=True)
})

Модель пользователя: ( в api_models / users.py )

from .permissions import permission_model

user_model = users_api.model('User', {
    "id": fields.String(description="User ID", required=True),
    "permissions": fields.List(fields.Nested(permission_model))
})

Я думал, что это так же просто, как импортировать модели из одного файла в другой, но при этом весь API ломается («Нет API» определение предоставлено. "). Я предполагаю, что это связано с тем, что они привязаны к разным пространствам имен?

  1. Есть ли обходной путь?
  2. Как люди используют модели, пересекающие пространства имен?

Спасибо.

1 Ответ

0 голосов
/ 24 марта 2020

Это на самом деле работает как ожидалось. Потратив много времени, пытаясь понять, почему модели не используются совместно, я начал с нуля, просматривая каждую строку кода и когда попал в блок регистрации пространства имен .... Я чувствовал себя невероятно глупо: я забыл зарегистрировать фактическое пространство имен «Разрешения» в приложении. Сделал это и теперь работает нормально, и модели распределяются как положено.

...