2016-03-31 10 views
1

現在、Flask-Restful-Swaggerを使用してAPI用のドキュメントを作成しています。私のリソースの1つは、配列という1つの要素を持つdictを返します。配列内の項目は、Flask-Restful-Swagger Modelクラス(リストフィールド付き)

{ 
    "active": bool, 
    "affectation": str, 
    "alert_type": str, ... 
} 

などの形式です。フィールドはbool、str、int、またはfloatです。配列の各要素には合計32のフィールドがあります。私はresponseClassとして使用する@swagger.modelクラスを構築しようとしています。

まず私が試した:

闊歩のHTMLビューに予想される出力を生成
@swagger.model 
class ReportListGet: 
    resource_fields = { 
     'items': fields.List(fields.String) 
    } 

を:

{ 
    "items": [ 
    "" 
    ] 
} 

だから私は、実際の応答を示すために、それの上に構築しようとしました。以下のような何か:

resource_fields = { 
    'items': fields.List(fields.Nested(report_fields)) 
} 

が、HTMLで出力が

{ 
    "items": [ 
     null 
    ] 
} 
た:

{ 
    "items": [ 
    { 
     "active": fields.Boolean, 
     "affectation": fields.String, 
     "alert_type": fields.String, ... 
    } 
    ] 
} 

私の第二の試みは、すべてのフィールドで辞書を作成し、同じようfields.Nestedを使用していました

それから私はfields.Rawから継承している自分のフィールドを作成しようとしましたが、それは私に同じnull dictを与えました。フィールドにデフォルト値を割り当てることもできませんでした。

答えて

1

私はそれを理解しました!

@swagger.model 
@swagger.nested(
    items=Report.__name__) 
class ReportListGet: 
    resource_fields = { 
     'items': fields.List(fields.Nested(Report.resource_fields)) 
    } 

他のクラスは普通の@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

で始まり、今闊歩のHTMLビューには、このことを示しています

{ 
    "items": [ 
    { 
     "active": "", 
     "affectation": "", 
     "alert_type": "", 
     ... 
    } 
    ] 
} 
関連する問題