首页 > 解决方案 > Swagger(使用 flask-restx/plus)可选列表/嵌套 JSON

问题描述

我需要 API 接受:

{
  'field1' : 10,
  'children' : [ 'c1', 'c2' ]
}

并且

{
  'field1' : 10,
}

即,当没有孩子时,可以跳过该字段。

我尝试定义模型:

  'field1'   : fields.Integer(example=42),
  'children' : fields.Nested(child_model, as_list=True, allow_null=True, required=False)

以及:

  'field1'   : fields.Integer(example=42),
  'children' : fields.List(fields.Nested(child_model, as_list=True, allow_null=True), required=False)

以及几乎所有的as_list, allow_null, 'skip_none anddefault` 组合(无,[] 等)

我希望required=False为其他类型工作List和/或Nested以相同的方式工作。如果服务器不包含children在 JSON 中,则封送总是会添加一些值。但是,当客户端向服务器返回相同的 JSON 时,封送会抱怨。

如何实现可选列表/嵌套 JSON?

标签: flask-restplusflask-restx

解决方案


推荐阅读