Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

สร้าง Link Shortener App ด้วย Ruby & Sinatra: Step-by-Step Tutorial

โปรเจกต์เล็กฝึก Ruby skills: สร้าง "Link Shortener" แมป short code (เช่น eKBRm2tTUF) → original URL

First Steps

ใช้ Sinatra (no setup) และ PStore (file-based database จาก stdlib) แทน SQL

require 'sinatra'
get '/:url' do "The URL is #{params[:url]}" end
get '/' do "Send a POST request to register a new URL." end
post '/' do "New URL added: #{params[:url]}\n" end

ทดสอบ POST ด้วย curl: curl localhost:4567 --data "url=rubyguides.com" -X POST

Mapping URLs

Generate short code 6 ตัวอักษรสุ่ม:

LETTERS = Array('a'..'z')
def generate_short_url
  Array.new(6) { LETTERS.sample }.join
end

Our "NoSQL" Database (PStore)

class ShortURL
  def self.save(code, original)
    store.transaction { |t| t[code] = original }
  end
  def self.read(code)
    store.transaction { |t| t[code] }
  end
  def self.store
    @store ||= PStore.new("short_urls.db")
  end
end

PStore ใช้งานเหมือน Hash แต่ต้องอยู่ใน transaction block

Complete Sinatra App

require 'sinatra'
get '/:url' do
  redirect "https://" + ShortURL.read(params[:url])
end
get '/' do
  "Send a POST request to register a new URL."
end
post '/' do
  ShortURL.save(generate_short_url, params[:url])
  "New URL added: localhost:4567/#{generate_short_url}\n"
end

ทำงานได้แล้ว! ยังมีงานต่อ: เพิ่ม form, error handling, check duplicates (homework)

Summary

สร้าง Link Shortener ด้วย Ruby, Sinatra, PStore เรียนรู้ POST request ด้วย curl