Bạn có chắc chắn muốn xóa bài viết này không ?
Bạn có chắc chắn muốn xóa bình luận này không ?
Cách tạo API với Rails (phần 1)
Tiếp theo bài Tạo 1 web application với Rails mình xin tiếp tục với việc tạo một API với Rails
Mình sẽ hướng dẫn cách tạo API để trả ra danh sách 1 list traveler gồm các thông tin về first_name, last_name, birthday, gender
Bước 1 Tạo model traveler ( hiểu nôm na là tạo 1 table traveler )
Table traveler gồm có các field first_name, last_name, birthday, gender
rails g model traveler first_name:string last_name:string birthday:datetime gender:string
rake db:migrate
Bước 2 Tạo database seeds cho table traveler
Mình sử dụng gem ffaker để tạo fake data nha.
Bạn vào Gemfile add tại block này ( có thể kiểm tra thêm tại github ):
group :development, :test do
gem 'ffaker', :git => 'https://github.com/EmmanuelOga/ffaker.git'
end
Vào db/seeds.rb
20.times do |n|
Traveler.create!(first_name: FFaker::Name.first_name,
last_name: FFaker::Name.last_name,
birthday: FFaker::IdentificationESCO.expedition_date,
gender: FFaker::Gender.maybe )
end
Sau đó chạy lệnh để khởi tạo seed data
rake db:seed
Để kiểm tra database vừa tạo ra tại terminal làm việc bạn gõ rails c
sau đó kiểm tra database
Traveler.all
Đây là các để bạn kiểm tra tất cả database fake bạn vừa tạo ra.
Bước 3 Generate version API sử dụng gem versionist
Mình sử dụng gem versionist để tạo API version một cách dễ dàng hơn
Tạo API version đầu tiên nào Tìm hiểu thêm tại đây
Đây là câu lệnh để tạo
rails g versionist:new_api_version <version của API> <module namespace của API> [options]
Mình sẽ tạo API với version là v1
, module là V1
, option là --path=value:v1 --default
rails g versionist:new_api_version v1 V1 --path=value:v1 --default
Mình sẽ tạo API để get được 1 list traveler
Bạn mong muốn api có dạng sau /v1/travelers
chúng ta tiếp tục tạo một new versionist:new_controller
rails g versionist:new_controller <name> <module namespace>
Mình sẽ tạo API với routes là /v1/travelers
rails g versionist:new_controller travelers V1
Bước 4 Retrieve list travelers
Vào app/controllers/v1/travelers_controller.rb
để viết method lấy 1 list danh sách travelers
class V1::TravelersController < V1::BaseController
def index
# Get all list travelers
travelers = Traveler.all
# render kết quả dưới dạng json
render json: travelers, root: false
end
end
Bước 5 Kiểm tra kết quả
- Vào terminal gõ
rails s
- Sau đó vào trình duyệt
http://localhost:3000/v1/travelers
Xem chi tiết về code tại đây: https://github.com/mymai91/travel-api/tree/create-api
Yah!!! Đã xong rồi đó ! Đơn giản phải hok nào hihi :PP
Xem tiếp phần 2 tại đây Cách tạo API với Rails (phần 2) Viết test case







