Post#index 要能找到所有文章
建立 posts 的 API 模組
api_v0 下其實就跟 controller 下一樣,請用複數
touch app/api/api_v0/posts.rb
使用者能看到自己所有的 posts
module ApiV0
class Posts < Grape::API
before { authenticate! }
desc "Get all your posts"
get "/posts" do
current_user.posts
end
end
end
要記得在入口點 api/api/api_v0/base.rb
加上 posts 模組
module ApiV0
class Base < Grape::API
#...
mount Posts
#...
end
end
這樣一來,如果哪天要關閉 posts API 只需要把 mount Posts
註解掉就行,很方便吧
因為目前資料庫是沒有資料的,請先在 rails console
內建立資料
user = User.create(email: "[email protected]", password: "password")
Post.create(user: user, title: "Hello", context: "World")
access_token = ApiAccessToken.create(user: user)
# 把 token 打印出來,我們在 call API 時要用
access_token.key
測試對 localhost:3000/api/v0/posts
發起請求,並帶上把剛剛的 token 放在 access_key 裡
應該會拿到
[
{
"id": 1,
"title": "Hello",
"context": "World",
"created_at": "2019-04-05T10:55:38.578Z",
"updated_at": "2019-04-05T10:55:38.578Z"
}
]