2020年5月13日水曜日

簡易SNSを作ってみよう(15)

データダウンロード用APIの作成
隠し機能として,データダウンロードAPIを用意しておく.ネームスペースとしてAPIという別空間を用意しておき,そのなかでデータダウンロード用の手続きを実装する.

【手順】
vi config/routes.rb
(以下を追加)
Rails.application.routes.draw do

…(略)…
  namespace :api, { format: 'json' } do
    resources :users, :only => [:show]
  end
end

mkdir app/controllers/api
vi app/controllers/api/users_controller.rb
(以下を作成)
class Api::UsersController < ApplicationController
  def show
    @user = User.find(params[:id])
    ary = [@user]
    ary.push(@user.posts)
    render json: ary
  end
end

このようにしておくことで,ユーザーごとの投稿データをJSON形式でダウンロードできるようになる.アクセスは,http://localhost:3000/api/users/{id}でよい.ブラウザからアクセスして確認してみること.
本来はデータ保護のため,ログインしないとアクセスできないようにしておくべき(before_ action authenticate_user! をきちんと書いておく)だが,プログラムからの一括ダウンロードを可能にしたいので,とりあえずはこのままにしておく.

0 件のコメント:

コメントを投稿