をトリミング応答は、私がConnexion文書に従っても問題があります: PythonのConnexionは - 私は、Pythonフラスコサーバーを生成するために<a href="http://editor.swagger.io/" rel="nofollow noreferrer">Swagger Editor</a>を使用してい
Iに定義闊歩のYAMLファイルの次の応答:responses:
'200':
description: successful operation
schema:
type: object
required:
- firstname
- lastname
properties:
firstname:
type: string
lastname:
type: string
{
"firstname": "Jane",
"lastname" : "Doe"
}
ただし、データベースのAPIは、例えば、はるかに大きなデータセットを返します。私は期待何 は
次の応答を返すことです。
user=db.get_user_info()
pprint.pprint(user)
{
"firstname" : "Jane",
"middlename": "foo",
"lastname" : "Doe",
"age" : "25",
"sex" : "male",
...
}
私が予想される応答を返すために、私は2つのソリューションを持っていますが、それらのどちらも最適です:
解決方法1:
手動たとえば、小さなデータセットを定義します。
をuser_response = {
"firstname" = user["firstname"],
"lastname" = user["lastname"]
}
return user_responose
明らかに、応答ごとに私はハードコードする必要があります変数 _response、つまり、2つの場所で応答プロパティを維持する必要があります(YAMLとコードの両方がわかります)。
解決方法2:
モデルが闊歩するコード生成によって生成されたので、私はモデルにアクセスし、応答特性を取得しようとする必要があるが、例えば、ユーザモデルはおそらく、このように定義:
self.swagger_types = {
'firstname': str,
'lastname': str,
}
これは簡単ですが、実際には応答プロパティには多くの$ refがあり、$ ref内には常に$ refがあります。私はすべてのプロパティを簡単に取得する方法を見つけることができません。
だから私の質問は、最高の解決策は何ですか?
ありがとうございます!
'user = db.get_user_info()'を実行するときに、必要なフィールド(firstname、lastnameなど)のリストを指定する方法はありますか? (私はPythonの専門家ではないが、まともなORMはそのような機能を持っている必要があります) –
解決策1を使用しない限り、どのフィールドが返される必要があるかわかりませんYAMLのコンテンツと重複しています)、または解決策2を使用してください(生成されたモデルのフィールドを取得します。フィールド内の再帰参照のために非常に難しいと思われます)。 –