Ruby + Sinatra 构建 RESTful API 全程指南:从环境到 CRUD
作者:API传播员 · 2025-11-01 · 阅读时间:4分钟
本文详细介绍了如何使用Ruby和Sinatra框架构建一个遵循RESTful原则的API,包括使用Sequel库实现数据库交互。教程涵盖了从项目初始化、依赖安装到实现GET、POST、PUT和DELETE端点的完整过程,适合初学者快速上手构建简单的RESTful API。
一. 前置准备与环境搭建
1. 安装 Ruby 与 Bundler
- Ruby ≥ 2.6(自带 bundler 即可)
- 创建项目目录并安装依赖:
$ mkdir ruby-rest-api && cd ruby-rest-api
# 在项目根目录新建 Gemfile
$ bundle install
💡 AI 助攻
想自动生成带注释的Gemfile?用「代码生成」提示词,30 秒即可拿到模板,再交给「代码优化」砍掉冗余依赖,启动速度提升 20%!
二. 项目初始化与数据库连接
1. 引入必要库
# app.rb
require 'sinatra'
require 'sinatra/json'
require 'sequel'
require 'json'
2. 连接 SQLite 并自动建表
DB = Sequel.connect('sqlite://api.db')
DB.create_table? :tasks do
primary_key :id
String :title
String :description
Boolean :completed, default: false
end
3. 定义 Sequel 模型
class Task < Sequel::Model
end
三. 构建 RESTful 端点
| 方法 | 路径 | 功能 |
|---|---|---|
| GET | /tasks | 获取所有任务 |
| POST | /tasks | 创建新任务 |
| PUT | /tasks/:id | 更新指定任务 |
| DELETE | /tasks/:id | 删除指定任务 |
🔍 AI 审查
把「参数校验 + 异常处理」提交评审?「代码审查助手」可自动检查空值、类型错误,提前发现 80% 潜在 Bug!
1. 获取所有任务
get '/tasks' do
tasks = Task.all
json tasks
end
2. 创建新任务
post '/tasks' do
data = JSON.parse(request.body.read)
task = Task.create(title: data['title'], description: data['description'])
json task
end
3. 更新任务
put '/tasks/:id' do |id|
data = JSON.parse(request.body.read)
task = Task[id]
task.update(title: data['title'], description: data['description'], completed: data['completed'])
json task
end
4. 删除任务
delete '/tasks/:id' do |id|
task = Task[id]
task.delete
json task
end
四. 运行与测试
1. 启动服务
$ ruby app.rb
# 默认监听 http://localhost:4567
2. 快速验证
# 获取所有任务
$ curl http://localhost:4567/tasks
# 创建任务
$ curl -X POST http://localhost:4567/tasks \
-H "Content-Type: application/json" \
-d '{"title":"Learn Sinatra","description":"Build a REST API"}'
✅ AI 补救
把「curl 测试命令」写进 README 太麻烦?用「代码文档生成器」提示词,自动在文件头部生成标准注释,提醒后续接入 Postman 集合,文档一键达标!
五. 进阶路线
- 参数校验:使用
dry-schema或sinatra-param过滤非法输入 - 分页:
sequel-pagination插件实现 limit/offset - JWT 认证:
sinatra-jwt保护敏感端点 - 容器化:编写
Dockerfile一键打包部署 - CI/CD:GitHub Actions 自动跑 RSpec + RuboCop
六. 总结与下一步
通过本文的教程,我们学习了如何使用 Ruby、Sinatra 和 Sequel 构建一个简单的 RESTful API。这个项目可以作为开发更复杂 API 的基础。您还可以进一步探索 Sinatra 和 Sequel 提供的其他功能,以增强您的 API。
🎯 立即行动
把本文代码 push 到 GitHub → 用 Render / Fly.io 一键部署 → 前端 React 调用,今晚就能拥有属于自己的 Todo API!
原文链接: https://medium.com/@AlexanderObregon/building-restful-apis-with-ruby-d5ac54be12e4
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 如何保护您的API免受自动化机器人和攻击 | Zuplo博客
- ASP.NET Core Minimal APIs 入门指南 – JetBrains 博客
- 什么是 OpenReview
- Vue中使用echarts@4.x中国地图及AMap相关API的使用
- 使用 Zeplin API 实现 Zeplin 移动化
- Rest API 教程 – 完整的初学者指南
- API Key 密钥 vs OAuth 2.0:身份认证的比较
- Claude API 能使用 OpenAI 接口协议吗?
- 使用DeepSeek R1、LangChain和Ollama构建端到端生成式人工智能应用
- 如何获取通义千问 API Key 密钥(分步指南)
- 您需要了解的OpenAI Assistants API功能 – PageOn.ai
- DRF库详解:用Django轻松搭建功能强大的API服务