Ruby – Xây Dựng Backend với Ruby

2 min read

Mở Đầu Giới Thiệu

Ruby là một ngôn ngữ lập trình đa năng, nổi tiếng với cú pháp thân thiện và dễ đọc. Được phát triển vào giữa những năm 1990 bởi Yukihiro “Matz” Matsumoto, Ruby nhanh chóng trở thành một trong những ngôn ngữ phổ biến nhất trong cộng đồng lập trình, đặc biệt là với sự ra đời của framework Ruby on Rails. Ruby không chỉ mạnh mẽ trong việc xây dựng ứng dụng web mà còn rất phù hợp cho việc xây dựng backend nhờ vào tính linh hoạt và khả năng mở rộng. Trong bài viết này, chúng ta sẽ khám phá cách cài đặt Ruby và khởi tạo một project REST API cơ bản với Ruby.

Cài Đặt Ruby

1. Cài Đặt Trên Hệ Điều Hành MacOS và Linux

Bạn có thể cài đặt Ruby thông qua trình quản lý phiên bản rbenv hoặc rvm. Dưới đây là hướng dẫn sử dụng rbenv:

  1. Cài đặt rbenv và ruby-build: $ brew install rbenv $ rbenv init $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ source ~/.bash_profile
  2. Cài đặt Ruby phiên bản mới nhất: $ rbenv install 3.1.0 $ rbenv global 3.1.0
  3. Kiểm tra phiên bản Ruby:
    bash $ ruby -v

2. Cài Đặt Trên Hệ Điều Hành Windows

Bạn có thể sử dụng RubyInstaller để cài đặt Ruby trên Windows:

  1. Tải và cài đặt RubyInstaller từ trang chủ RubyInstaller.
  2. Chạy file cài đặt và làm theo hướng dẫn.
  3. Kiểm tra phiên bản Ruby:
    bash $ ruby -v

Khởi Tạo Project REST API Với Ruby

1. Cài Đặt Rails

Rails là một framework mạnh mẽ và phổ biến nhất của Ruby để xây dựng các ứng dụng web, đặc biệt là REST API.

  1. Cài đặt Rails: $ gem install rails
  2. Khởi tạo một project mới:
    bash $ rails new my_api --api $ cd my_api

2. Cấu Hình Database

Rails hỗ trợ nhiều loại database như SQLite, PostgreSQL, và MySQL. Bạn có thể cấu hình database trong file config/database.yml. Dưới đây là ví dụ cấu hình cho PostgreSQL:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: my_api_development

test:
  <<: *default
  database: my_api_test

production:
  <<: *default
  database: my_api_production
  username: my_api
  password: <%= ENV['MY_API_DATABASE_PASSWORD'] %>

3. Tạo Model và Controller

  1. Tạo một model: $ rails generate model Article title:string body:text $ rails db:migrate
  2. Tạo một controller:
    bash $ rails generate controller Articles

4. Định Tuyến (Routing)

Mở file config/routes.rb và thêm tuyến đường cho API:

Rails.application.routes.draw do
  namespace :api do
    namespace :v1 do
      resources :articles
    end
  end
end

5. Xây Dựng Controller Cho REST API

Mở file app/controllers/api/v1/articles_controller.rb và thêm mã sau:

module Api
  module V1
    class ArticlesController < ApplicationController
      def index
        articles = Article.all
        render json: articles
      end

      def show
        article = Article.find(params[:id])
        render json: article
      end

      def create
        article = Article.new(article_params)
        if article.save
          render json: article, status: :created
        else
          render json: article.errors, status: :unprocessable_entity
        end
      end

      def update
        article = Article.find(params[:id])
        if article.update(article_params)
          render json: article
        else
          render json: article.errors, status: :unprocessable_entity
        end
      end

      def destroy
        article = Article.find(params[:id])
        article.destroy
        head :no_content
      end

      private

      def article_params
        params.require(:article).permit(:title, :body)
      end
    end
  end
end

Kết Luận

Ruby là một ngôn ngữ tuyệt vời để phát triển backend, đặc biệt là khi kết hợp với framework Rails. Bằng cách sử dụng Ruby, bạn có thể xây dựng các ứng dụng REST API mạnh mẽ, linh hoạt và dễ bảo trì. Hy vọng rằng bài viết này đã cung cấp cho bạn một cái nhìn tổng quan về cách bắt đầu với Ruby và Rails để phát triển backend. Hãy thử ngay và khám phá thêm nhiều tính năng tuyệt vời của Ruby và Rails!

Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *