0

私は現在、Tastypie API からデータにアクセスするために、RestKit 0.20 を使用して iOS アプリケーションに取り組んでいます。

そして、このようなURLからフィードデータを取得しようとしています

/api/v2/feed/?format=json

次に、以下のようにフィードの配列を取得します。

{
  "meta": {
    "limit": 20,
    "next": null,
    "offset": 0,
    "previous": null,
    "total_count": 2
  },
  "objects": [
    {
      "id": 1,
      "info": "This is my first post",
      "pub_date": "2013-02-03T15:59:33.311000",
      "user": "/api/v2/user/1/",
      "resource_uri": "/api/v2/feed/1/"
    },
    {
      "id": 2,
      "info": "second post, yeah",
      "pub_date": "2013-02-03T16:00:09.350000",
      "user": "/api/v2/user/1/",
      "resource_uri": "/api/v2/feed/2/"
    }
  ]
}

Tastypie が外部キーのような URL として送信するユーザーに関するデータをさらに取得したい場合は、 "user": "/api/v2/user/1/"objectRequestOperation をネストする必要がありますか。

データが正常にロードされたときにコールバックするブロックを使用しているため、混乱しています。フィードの完了をリクエストした後、フィードごとにユーザー データを再度リクエストするよりも良い方法はありますか。

どうもありがとうございました :)

4

1 に答える 1

0

フィードリソースで定義する必要があります:

user = fields.ToOneField(UserResource, full=True)

tastypieドキュメントの詳細情報http://django-tastypie.readthedocs.org/en/latest/resources.html

なぜリソースURIなのか?リソースURIは、Tastypieがデータを配信する方法に大きな役割を果たします。これは、単に関連データをインライン化する他のソリューションとは大きく異なるように見える場合があります。Tastypieはそのようなデータをインライン化できますが(リレーションを持つフィールドでfull = Trueを使用)、デフォルトではURIを提供します。

URIはペイロードが小さくなり、重要なデータのみをフェッチできるため便利です。オブジェクトに、興味がない可能性のある何千もの関連アイテムがある場合を想像できます。

各エンドポイントのデータが頻繁に変更される可能性が低いため、URIも非常にキャッシュ可能です。

また、URIは、各エンドポイントを適切に使用して、エンドポイントがカバーするデータを表示することを推奨します。

イデオロギーはさておき、あなたは自分に合ったものを使うべきです。より少ないリクエストとより少ないエンドポイントを好む場合は、full = Trueを使用できますが、各アプローチの結果に注意してください。

于 2013-02-05T14:30:31.727 に答える