建立地基,開發第一個 API

模組化架構

這個章節會告訴你如何建立第一個 API

通常用 ping pong 來測試 api 接口是否正常,也叫做 health check

在一開始會比較囉唆的建立資料夾,為的是後期開發能夠有模組化的結構

那我們就開始吧!

首先,先創建我們開發 api 用的資料夾

mkdir app/api

創建入口點

touch app/api/api_root.rb

一般來說我們傳遞資料的格式都會用 json,如果沒有設定就會用 xml,所以這邊要設定 format 為 json

class ApiRoot < Grape::API
  PREFIX = '/api'.freeze

  format :json

  mount ApiV0::Base
end

我們要從 v0 開始開發,雖然 grape 可以設定版本號,但我認為用資料夾區分更好管理

所以創建 mkdir app/api/api_v0

創建 v0 入口點

touch app/api/api_v0/base.rb

module ApiV0
  class Base < Grape::API
    version 'v0', using: :path

    mount Ping
  end
end

這裡 mount Ping 是還沒實做的 api module

加入檔案 touch app/api/api_v0/ping.rb

module ApiV0
  class Ping < Grape::API
    desc 'Ping pong'
    get "/ping" do
      "pong"
    end
  end
end

config/routes.rb 裡面這樣加入

Rails.application.routes.draw do
  # ...
  mount ApiRoot => ApiRoot::PREFIX
  # ...
end

這樣做的好處是把 api prefix 也都放在 api_root.rb 進行管理, route 那邊就只要寫一次就行。

我們將 api 掛載在路由網址 /api 下,這樣所有的 api 都是從 /api 開始

啟動 rails server 輸入 http://localhost:3000/api/v0/ping

就可以看到回應 pong 了

Copyright © NicLin 2019 all right reserved,powered by Gitbook該頁面生成時間: 2019-04-09 10:00:37

results matching ""

    No results matching ""