Home » None » Ruby API with Sinatra

Ruby API with Sinatra

ban-ruby-sinatra
Để viết API có rất nhiều cách để viết bạn có thể tạo vởi rails project. Nhưng ở đây mình xin giới thiệu với mọi người cách tạo ra các API 1 cách đơn giản với sinatra.

I. API with Sinatra.

1, Install.

cài đặt sinatra gem file:

gem install sinatra
2, Getting started: Hello World

đầu tiên bạn cần tạo file: app.rb



ruby app.rb là có thể chạy được api rồi.

3. Routes

trong sinatra 1 route được định nghĩa với 1 method HTTP

Trong link cũng có thể bao gồm các parameters. Dữ liệu được lấy thông qua hash: params.

Chúng ta cũng có thể đặt tên cho param chuy cập. như ví dụ trên ta sẽ gắn param name vào biến n.

Trong route ta cũng có thể sử dụng ký hiệu *, các giá trị được truyền vào * sẽ dược lưu trong params[:splat] kiểu array.

cũng giống như trên ta có thể gắn các * vào các biến khác nhau.

Ta cũng có thể sử dụng matching với Regular Expressions!.

II. Nginx Proxied to Unicorn

Để chạy các ứng dụng API của sinatra trên server 1 cách dễ dàng và tốt hơn người ta thường dùng kết hợp Nginx và Unicorn. Hướng dẫn dưới đây sẽ giúp các bạn thiết lập nó. Trước tiên ban phải cài đặt nginx và uncron.

install nginx.

install uncron

Chúng ta sẽ tìm hiểu sâu hơn thông qua ví dụ dưới đây. Chúng ta  tạo ra 1 app với cấu trúc như sau:

trong config.rb ta dùng đoạn code sau

trong file myapp.rb sử dụng code sau

cấu hình trong unicorn.rb

Trong /etc/nginx/ ta sử file config như sau:

Để chạy chương trình ta có thể sử dụng 1 file sh(run.sh) như sau

Starting the server

đầu tiên ta khởi dộng nginx:
/etc/init.d/nginx start

sau đó chạy lệnh: ./run.sh start

Stopping the server

rất đơn giản khi muốn dừng server ta chỉ cẩn chạy lệnh:
./run.sh stop

Trên đây là một số hướng dẫn đơn giản của mình về việc tạo và chạy 1 API với sinatra, nginx và uncron. Bài viết còn sơ sài rất mong mọi người góp ý.