0

django-piston を使用して API を作成しています。パラメータに従って戻りフィールドを変更できるかどうかを知る必要があります。サムネイル フィールドを返そうとしていますが、サムネイルのサイズを URL 経由で渡すオプションが必要です。

前もって感謝します

4

1 に答える 1

0

似たようなことを思いついたので、正しい方向に向ける手助けができると信じています.

実現する基本的なことは、ピストンは何を返すかを気にしないということです。私のユースケースでは、サブリソースを返したいと思っていました。だから、もし私が持っていたら:

{
    "foo": "bar",
    "baz": [{"id": 1}, {"id": 23}],
}

bazオブジェクトだけをリクエストして、次のものを取得できます。

{
    "baz": [{"id": 1}, {"id": 23}],
}

最初はハンドラーのfieldsorを動的に変更しようとしましたが、それは完全に間違ったアプローチでした。ピストンがまったく気にしないことに気付いたら、次のようにしました。excludes

 if attrib is not None:
     if hasattr(binder, attrib):
         return getattr(binder, attrib)

     else:
         return rc.BAD_REQUEST

これはうまくいきます。1 つの注意点: fieldsorexcludesは、返されるオブジェクトに適用されます。サブリソースを返そうとしたが、すべてのフィールドを取得できなかったとき、不意を突かれた。そのため、問題が発生した場合は確認してください。

あなたの場合、具体的には、サムネイルを要求されたサイズに簡単に生成してから、返すメタオブジェクトを構築できると思います。

meta = dict()
meta['thumbnail' = generateThumbnail(width, height)
meta['other_field'] = base.other_field

return meta

それがあなたのために働くかどうか見てください。

于 2012-11-07T17:20:51.783 に答える