Cách tạo API với Rails (phần 1)
RubyOnRails
39
RubyGirlsVietnam
14
White

My Mai viết ngày 15/07/2015

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

alt text

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

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

My Mai

33 bài viết.
165 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
21 8
Lotus là gì? (Link) là một Ruby Web Framework mới với chú trọng vào cấu trúc tách rời với thiết kế đơn giản và dễ hiểu. Hiện tại thì Lotus vừa re...
My Mai viết gần 3 năm trước
21 8
White
18 21
Bạn muốn load 3 image khác nhau (Ý mình ở đây là dùng tag không phải background nhé) cho 3 loại màn hình khác nhau (small, medium, large). Bạn sẽ l...
My Mai viết gần 3 năm trước
18 21
White
18 7
Tham gia cộng đồng Thoáng đó cũng đã 2 năm từ lúc tớ tham gia cộng đồng Ruby Việt Nam. Giờ ngồi ngẫm lại được gì và mất gì :v Thật thì chẳng mất...
My Mai viết hơn 1 năm trước
18 7
Bài viết liên quan
White
8 1
Tiếp theo (Link) Mình sẽ hướng dẫn cách test căn bản cho API mình tạo. Thật ra mà nói thì mình phải viết test trước khi làm nhưng mà để tránh việc...
My Mai viết hơn 2 năm trước
8 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
33 bài viết.
165 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!