python - Flask RestPlus/RestX:如何在命名空间之间共享 API 模型?
问题描述
我的 Flask-RestX 应用程序中有以下结构:
- api_models
- 用户
- 权限
- 命名空间
- 用户
- 权限
我在api_models/permissions中有一个permission_model,我想在api_models/users的user_model中使用它。用例:
权限模型:(在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 定义。”)。我认为这是因为它们附加到不同的命名空间?
- 有解决方法吗?
- 人们如何跨命名空间使用模型?
谢谢。
解决方案
这实际上按预期工作。在花了很多时间试图理解为什么不共享模型之后,我从头开始,检查每一行代码,当我到达命名空间注册块时......我觉得非常愚蠢:我忘了注册应用程序中的实际“权限”命名空间。做到了,现在工作正常,模型按预期共享。
推荐阅读
- python - 使用 python json 对象插入查询
- .net - 对 Active Directory 用户和 LDAP 的任何限制
- c# - 使用拼接功能删除项目时,轮播动态项目有问题
- android - gainStyledAttributes() 混淆,defStyleRes
- paypal - Paypal API v2-API 响应缺少 Seller_receivable_breakdown
- google-app-engine - Google App Engine Standard 第二代频繁重启
- r - 可以将学习者中从一个练习到另一个练习的代码存储在内存中吗?
- uwp - 如何获取/设置 UWP MediaPlayerElement 中的可选播放速率?
- javascript - Github Pages 抛出 404 'Not Found' 错误,但在浏览器中测试 index.html 文件时站点可以工作
- jq - 使用 jq 检查多个值是否为空的最佳方法是什么?