0

Rest API と関係についていくつか質問があります。

レストとの関係の問題は常に難しいことを私は知っています。

私は何人かのユーザー、投稿 (ユーザーによって作成された)、ユーザー間の関係 (fb からインポートされた)、投稿に対する相互作用 (ユーザーによって作成された) を持っており、ユーザーは投稿を気に入ることができます。

ユーザーは、投稿者と関係がある他のユーザー (友達の友達のように最大 2 ジャンプ) だけが見ることができる投稿を作成し、投稿でインタラクションを作成できます。

認証に基づいてバックエンドでフィルタリングを行い、/posts でマジックを実行して、表示できる投稿のリストを返します。

同じエンドポイント (/posts) が現在のユーザーに基づいて異なるデータ セットを返すため、私には少しファンキーに感じます。もちろん、パラメーター (?viewable_by_user_id=:id) を渡してもう少し反映させることもできますが、キャッシングを改善するために何かできることはないでしょうか。

このエンドポイントを使用して、API を v2 に改善することを考えています。

GET/PATCH/DELETE /users/:id

POST [post] /posts: 投稿を作成 (現在の認証ユーザーを投稿の所有者として使用) または POST [post] /users/:id/posts: このユーザーの投稿を作成

GET /users/:id/posts : ユーザーが作成した投稿を取得します

GET /users/:id/stream : ユーザーが「閲覧可能な」投稿を取得する (これは私が苦労しているものです) または GET /posts?viewable_by_user=:id

GET /users/:id/like : ユーザーが気に入った投稿を取得 POST [post_id] /users/:id/like : 投稿にいいね!

POST [interaction] /posts/:id/interactions : 現在のユーザーの投稿でインタラクションを作成します GET /posts/:id/interactions : 投稿のインタラクションを取得します

GET/PATCH/DELETE /interactions/:id

どうすればパスに関係をもう少し反映させることができるかについて何か考えはありますか? 関係のエンドポイントを作成することを考えていますが、維持するのが少し複雑に思えます (ユーザーは関係を手動で作成せず、fb から取得します)。

フィードバックをお寄せいただきありがとうございます。私の質問があいまいすぎる、または無関係である場合はお知らせください。

4

1 に答える 1

0

これを次のように考えるとどうなりますか: (「投稿」を最初に置き、その右側に制限を配置するのが好きであることに注意してください。他の順序が好きかもしれません。)

GET /users/posts/<viewer>/<creator>

これにより、いくつかの退化したケースが得られます。

GET /users/posts/<me>/<me>

作成したすべての投稿を取得するには

GET /users/posts/<me>

他のすべてのユーザーからすべての投稿を取得するには

GET /users/posts/<me>/<stranger>

見知らぬ人の投稿を見ることは許可されていないため、何も返されません

GET /users/posts/<me>/<friend>

友達からの投稿を返します。

: いずれの場合も、返されるすべての投稿は閲覧が許可されているものです

于 2013-05-01T18:20:18.290 に答える