週刊とっしーぱんち

昭和生まれのブロガーが綴る、全力脱力系雑記帳

【趣味でたのしむRuby】RubMineさんとRailsで初歩的なAPIサーバを作った話 その1

おはよーございます。

Railsを使ってAPIサーバの初歩の初歩的なものだけ作りました。

つくったものはGitHubに置いてみています、

github.com

やってみたことはざっと並べて見ると、今のところこんな感じです。

APIモードでrailsアプリの雛形作成

RubyMineというIDEを使うと特に何も考えずに作ることができました。 画面にあるようにRails APIを選んでプロジェクトの名前を入力するだけですね。なんと便利な。

実際の動作を受け持つContollerクラスに処理を実装

待ってるだけでRailsさんが初期セットを色々自動で作ってくれます。 実際のAPI動作を司る部分は、 自分で作ったのはcontrollers/match_controller.rbになります。

このファイルもRailsの機能で作ることができて、RubyMineの場合は以下のメニューから呼び出すことができます。

Tools ー> Run Rails Generator

これを使うとこんな感じでRailsのコマンドがずらーっと出てきますが、コントローラを作るときは、rails g controllerを選ぶと以下のような画面がでるので

Controller nameに作りたいクラス名を入力

Actionsのところは、最初なんも知らずに空白で作ってしまっていたのですが、 ここに入力した名前でメソッドを作ってくれるようです。このメソッド名はAPI呼び出すときに使う名前になるので、例えばクラス名Matchでメソッド名がtestの場合はmatch/testで呼び出します。でOKボタンを押すと、controllers/の下に指定した名前に_controllerをつけたファイルが自動で作られます。

APIとして機能させるために、もうひとつやることが

さきほど紹介したActionsのところに名前を入力しておくと、config/routes.rbというファイルに指定した名前の記述が追加されます。これがAPIとして呼び出すときの定義ファイルとなっているようで、ここに名前を書かないといくらcontrollerに処理を記述しても呼び出すことができません。

僕の場合は、空白で作ってしまったのでこのファイルに手書きで加えました。

  # これを追加
  resources :match

end

こうやって書いておくとRESTAPIという規則に従って以下のようにアクションが自動で追加されるんだそうです。

GET       /match            match#index  
GET       /match/new        match#new   
POST      /match            match#create    
GET       /match/:id        match#show  
GET       /match/:id/edit   match#edit  
PATCH/PUT /match/:id        match#update    
DELETE    /match/:id        match#destroy

このあたりの情報はRailsGuideを参考にしました。

すでに長くなってきたので、続きはまた次回

ここまでできたのであとはメソッドを追加して実際に動きを確認するところなんですけど、すでに記事が長くなってきてしまいました。書く方も読む方も疲れてしまうので、否、どちらかといえば書く方が疲れてきていますので、続きはまた次回にしたいと思います😀

では、また!