Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。自分はウェブアプリだとURLを短くしたいので/users/:user_id/productsというURL構造にして:user_idのパラメーターからユーザ情報を取得するのではなく、userの情報はcookieに噛ませて/productsのみのURLという風に普段は設計しています。今回grapeというgemを利用してiOS向けにAPIをつくろうとした所、cookie経由でユーザー情報を取得する事は適していない用に感じ、APIの方のURL構造を変更しようかなと考えました。そこでお聞きしたいのが、そもそも自分のWebアプリとしてのrailsのURL構造が悪いのか、APIのURL構造はこの用に設計しなければならないものなのかという事です。今回初めて本格的にiOS向けAPIを開発しているもので、、、。票2原則論でいば、/users/:user_id/productsというURLではなくuserの情報はcookieに持たせてそれをもとに/productsの返す内容が変わるというのは状態(=state)に依存したアプリケーションになっており、ステートレスであることを求めるRESTの原則に反していることになります。結果として、ステートレスなクライアントではuserが特定できないという事態になっています。cookieに保存されたuserの情報というのが認証情報で、/productsでは「認証されたユーザー(=自分)」に紐付いたリソースのみを扱えばよい、さらに、認証されたユーザー以外(=他人)のproductを扱う必要がない、ということであれば、APIでも認証情報からユーザーを特定すれば良いでしょう。cookieに保存されているのが認証情報ではない場合、たとえば、/user/fooを表示したらfooをcookieに保存しておき、/productsではその情報を使って処理をしている、というのであれば、設計がまずいといえますので、/users/:user_id/productsというURL構造に改めた方が良いでしょう。アクセスのたびにヘッダーに埋め込んでセッションを管理することが多いです。違いはありますが、基本は一緒です。特定して、/user/:user_idを省略することは普通に行われます。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。検索する時にあるレコードの要素をワイルドカードとするには?0Rails4でGrapeを使ってAPIを作成してHerokuに上げたら本番だけエラーが発生してしまった。constant(NameError)がでてしまいます。0スマホアプリのFaceBooKログインでサーバーサイドのアクセストークンチェックでエラーになります。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。