django-piston を使用して API を作成しています。パラメータに従って戻りフィールドを変更できるかどうかを知る必要があります。サムネイル フィールドを返そうとしていますが、サムネイルのサイズを URL 経由で渡すオプションが必要です。
前もって感謝します
django-piston を使用して API を作成しています。パラメータに従って戻りフィールドを変更できるかどうかを知る必要があります。サムネイル フィールドを返そうとしていますが、サムネイルのサイズを URL 経由で渡すオプションが必要です。
前もって感謝します
似たようなことを思いついたので、正しい方向に向ける手助けができると信じています.
実現する基本的なことは、ピストンは何を返すかを気にしないということです。私のユースケースでは、サブリソースを返したいと思っていました。だから、もし私が持っていたら:
{
"foo": "bar",
"baz": [{"id": 1}, {"id": 23}],
}
baz
オブジェクトだけをリクエストして、次のものを取得できます。
{
"baz": [{"id": 1}, {"id": 23}],
}
最初はハンドラーのfields
orを動的に変更しようとしましたが、それは完全に間違ったアプローチでした。ピストンがまったく気にしないことに気付いたら、次のようにしました。excludes
if attrib is not None:
if hasattr(binder, attrib):
return getattr(binder, attrib)
else:
return rc.BAD_REQUEST
これはうまくいきます。1 つの注意点: fields
orexcludes
は、返されるオブジェクトに適用されます。サブリソースを返そうとしたが、すべてのフィールドを取得できなかったとき、不意を突かれた。そのため、問題が発生した場合は確認してください。
あなたの場合、具体的には、サムネイルを要求されたサイズに簡単に生成してから、返すメタオブジェクトを構築できると思います。
meta = dict()
meta['thumbnail' = generateThumbnail(width, height)
meta['other_field'] = base.other_field
return meta
それがあなたのために働くかどうか見てください。