投稿一覧を実装しよう - satococoa/api-tutorial GitHub Wiki
投稿一覧
サーバに登録されている投稿を全て json 形式で返します。
Api::V1::PostsController#index
generator を使ってもいいのですが、今回は不必要なファイルが多く生成されてしまうので手作業でファイルを作ります。
app/controllers/api/v1/posts_controller.rb を以下の内容で作ってください。 (api, v1 ディレクトリは作る)
class Api::V1::PostsController < ApplicationController
def index
@posts = Post.all
end
end
引き続き、view を作ります。 app/views/api/v1/posts/index.json.jbuilder を以下の内容で作ってください。
json.array!(@posts) do |post|
json.extract! post, :title, :name, :body
end
実際にアクセスしてみます。(事前に管理画面から2, 3個の Post を登録しておくといいでしょう)
http://localhost:3000/api/v1/posts.json
[
{
title: "foo",
name: "bar",
body: "あいうえおかきくけこ"
},
{
title: "baz",
name: "barbar",
body: "テストテスト"
}
]
chrome 拡張の JSONView をインストールしておくと便利です。
もうちょっと複雑なレスポンスを作るにはこんな感じ
json.current_time Time.now
json.set! :posts do
json.array!(@posts) do |post|
json.extract! post, :title, :name, :body
end
end
{
current_time: "2013-07-24T17:29:46+09:00",
posts: [
{
title: "bar",
name: "foo",
body: "あいうえお かきくけこ"
},
{
title: "barbar",
name: "baz",
body: "かきくけこ さしすせそ"
}
]
}