質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

1115閲覧

Rails APIモードに関して ルーティングの考え方

masaosan18

総合スコア64

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/09/28 09:32

編集2020/09/28 09:37

RailsAPIモードでアプリケーションを作成しています。
学習していた段階ではerbでview側を作成していたので、APIモードに関しての知識がまだあまりありません。
実務に入った段階で、APIモードでアプリケーションを作成することになりもがいているので、知見のあるかたのお力をお借りしたいです。

やりたいこと

検索機能を実装しようとしています。

やりたこととしては、、、

<TOP画面>
①get /cities, to: cities#get 市区町村絞り込みまでのAPI
(地域を選択→その地域に属する都道府県が表示される、都道府県を選択→選択された都道府県の市区町村が表示される)
②get /cities, to: offices#top キーワード検索
(フリーワードで検索できるよう→キーワードを入力後、検索ボタンを押すと検索結果一覧画面へ遷移)
③get /cities, to: offices#top 市区町村検索機能
(①で絞り込まれた市区町村から選択された市区町村にあるOfficeを検索→検索ボタンを押すと検索結果一覧画面へ遷移)
ちなみに②と③の検索ボタンは別。同時検索はTOP画面ではできない。

<一覧画面>
①get /offices, to: offices#search キーワード検索
TOP画面と同じ仕組み、画面は遷移しない。サイドバーがある感じ
②get /offices, to: offices#search 現在地検索
現在地から絞り込みができる
③get /offices, to; offices#search 市区町村絞り込みのAPI
TOP画面と同じ
④get /offices, to: offices#search 市区町村検索
TOP画面と同じ

一覧画面ではサイドバーがあるイメージです。ここでは①と④の&検索ができる使用です。

不明点

上記のルーティング記述は自分で考えましたが、正しいのか全く自信がありません。
例えば、TOP画面と一覧画面で検索の仕組みは同じで、取得するAPIも同じのため、バックエンド側でURLやアクションなどをわける必要があるのか。

要するに、機能は同じなので、どこかに一つ取得したいAPIが求めている形で取得できるコードを書いておけば、良い感じにフロント側でできるのではないかと考えてしまいます。

TOP画面であれば、それぞれ独立した機能が3つ一つの画面に存在するのですが、その場合のURLは3つ同じで良いのか?コントローラとアクションは同じにするべきか?それとも別々に何かを考慮しながら決めるべきなのか?

とりあえず、ルーティングの考え方がわかりません。

大変未熟な質問の形で恐縮ですが、どなたか何かヒントをいただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

APIモードの場合は機能ごとに分割して考えるという認識になりました。

投稿2020/09/30 08:24

masaosan18

総合スコア64

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問