Flask-Restful-带有 List 字段的 Swagger 模型 class
Flask-Restful-Swagger Model class with List field
我目前正在使用 Flask-Restful-Swagger
为 API 构建文档。我的资源之一 return 一个只有一个元素的字典:一个数组。数组中的项目的形式为
{
"active": bool,
"affectation": str,
"alert_type": str, ...
}
等等。这些字段是 bool、str、int 或 float。数组的每个元素共有 32 个字段。我正在尝试构建 @swagger.model
class 以用作 responseClass
.
首先我尝试了:
@swagger.model
class ReportListGet:
resource_fields = {
'items': fields.List(fields.String)
}
在 Swagger 的 HTML 视图上产生了预期的输出:
{
"items": [
""
]
}
所以我尝试在它的基础上构建以显示实际响应。类似于:
{
"items": [
{
"active": fields.Boolean,
"affectation": fields.String,
"alert_type": fields.String, ...
}
]
}
我的第二次尝试是创建一个包含所有字段的字典,然后使用 fields.Nested 如:
resource_fields = {
'items': fields.List(fields.Nested(report_fields))
}
但是 HTML 中的输出是
{
"items": [
null
]
}
然后我尝试创建自己的继承自 fields.Raw
的字段,但它在 HTML 上给了我相同的 null
指令。为字段分配默认值也不起作用。
我想通了!
主要 class 最终是这样的:
@swagger.model
@swagger.nested(
items=Report.__name__)
class ReportListGet:
resource_fields = {
'items': fields.List(fields.Nested(Report.resource_fields))
}
另一个class只是一个普通的@swagger.model
:
@swagger.model
class Report:
resource_fields = {
"active": fields.String,
"affectation": fields.String,
"alert_type": fields.String,
...
}
在 Restful-Flask-Swagger's GitHub page 的示例中找到了我需要的线索。有用的代码从第 157 行开始。
现在 Swagger 的 HTML 视图显示如下:
{
"items": [
{
"active": "",
"affectation": "",
"alert_type": "",
...
}
]
}
我目前正在使用 Flask-Restful-Swagger
为 API 构建文档。我的资源之一 return 一个只有一个元素的字典:一个数组。数组中的项目的形式为
{
"active": bool,
"affectation": str,
"alert_type": str, ...
}
等等。这些字段是 bool、str、int 或 float。数组的每个元素共有 32 个字段。我正在尝试构建 @swagger.model
class 以用作 responseClass
.
首先我尝试了:
@swagger.model
class ReportListGet:
resource_fields = {
'items': fields.List(fields.String)
}
在 Swagger 的 HTML 视图上产生了预期的输出:
{
"items": [
""
]
}
所以我尝试在它的基础上构建以显示实际响应。类似于:
{
"items": [
{
"active": fields.Boolean,
"affectation": fields.String,
"alert_type": fields.String, ...
}
]
}
我的第二次尝试是创建一个包含所有字段的字典,然后使用 fields.Nested 如:
resource_fields = {
'items': fields.List(fields.Nested(report_fields))
}
但是 HTML 中的输出是
{
"items": [
null
]
}
然后我尝试创建自己的继承自 fields.Raw
的字段,但它在 HTML 上给了我相同的 null
指令。为字段分配默认值也不起作用。
我想通了!
主要 class 最终是这样的:
@swagger.model
@swagger.nested(
items=Report.__name__)
class ReportListGet:
resource_fields = {
'items': fields.List(fields.Nested(Report.resource_fields))
}
另一个class只是一个普通的@swagger.model
:
@swagger.model
class Report:
resource_fields = {
"active": fields.String,
"affectation": fields.String,
"alert_type": fields.String,
...
}
在 Restful-Flask-Swagger's GitHub page 的示例中找到了我需要的线索。有用的代码从第 157 行开始。
现在 Swagger 的 HTML 视图显示如下:
{
"items": [
{
"active": "",
"affectation": "",
"alert_type": "",
...
}
]
}