Ruby 论坛献礼:使用 Rails 6 开发纯后端 API 项目

imanner · 2021年06月07日 · 最后由 flyweights 回复于 2022年01月17日 · 3865 次阅读

使用 rails6 开发纯后端 API 项目

项目地址:https://github.com/letseeqiji/pure-rails6-api

前言

本书是结合作者实战经验和心得,参考了国内外诸多大神的资料,本着一颗学习、总结与分享的心书写而成,希望对读者有着有益的指导作用,如果能指导读者并能帮助读者创造一点点价值,那我就会更加开心了!

本书简介

书中实现了一个简易商铺系统的 纯后台 API 项目!适用于目前流行的使用 http 或 https 协议通信并使用json 作为数据交互restful 风格前后端分离项目。使用的技术栈包括 L N M R R【linux nginx mysql redis ruby】等!

本书分为 13 大章节

  • 第一章:环境准备工作
  • 第二章:API 版本的管理
  • 第三章:实战项目分析
  • 第四章:用户模块的开发
    • 模型相关开发
    • 控制器相关开发
  • 第五章:用户状态管理模块开发
  • 第六章:商铺模块开发
    • 模型相关开发
    • 控制器相关开发
  • 第七章:分页和返回值定制
  • 第八章:商品模块开发
    • 模型相关开发
    • 控制器相关开发
  • 第九章:订单模块开发
    • 模型相关开发
    • 控制器相关开发
  • 第十章:订单与商品模块关系开发
    • 模型相关开发
    • 控制器相关开发
  • 第十一章:异常处理
  • 第十二章:项目优化
  • 第十三章:项目部署

前两章是开发的准备工作,从第三章开始进入项目开发阶段,按照用户、商铺、商品、订单的顺序进行开发,中间还穿插了一些重要的知识点,比如分页和返回值格式的定制!第十一和十二两章是对项目的优化,分别从异常的处理和项目本身的优化来研讨,最后一章是项目的线上部署,我们将采用 nginx+puma+mina 实现项目的自动部署。

每一章节的知识都很丰富,也是我对自我知识的总结和分享,希望大家能够从中有所收获!

你将收获

  • 使用 Git 进行版本控制;
  • 在 Rails 中使用 JWT 进行用户状态验证;
  • 定制返回的 json 数据;
  • 单元测试的编写并使用 TDD 推进开发;
  • 跨域问题的解决;
  • 使用 nginx + ssl + puma + mina 进行项目部署;
  • 邮件服务的配置;
  • Rails 中 redis 缓存的使用;
  • Rails 中的一些编程技巧;

本书约定

为了更好的阅读及理解文中的知识点,我对每一章甚至是每一个小的模块都做了相对统一的结构,从浅入深,从知识点的梳理到应用的开发,所以,每一个模块的开发基本上都遵循了下面的结构:

  • 基础知识储备
    • 当前模块用到的 ruby 和 Rails 中知识点的补充和说明
  • 版本控制
    • 生成分支
  • 模块开发
    • 功能分析
    • 测试编写
    • 代码实现
    • 测试通过
  • 版本控制
    • 合并分支

感谢

本书能够出现,要感谢很多人。这其中有很多人的文章及作品为本书的书写提供了充实的资料和参考,有些人默默付出,让我能够安心的完成本书!这其中有我的家人也有志同道合的朋友!

  • Rails 官网 : 十分感激创造出 Rails 这么优秀的框架,让我感受的语言的优美,编程的快乐。这里有最新的信息和文档,希望大家有时间多逛逛这里。
  • ruby 中国 : 这是一个超级友好的社区,里面没有撕逼,只有互相共勉,互相支持,希望更多的人可以喜欢这个社区,我非常感谢这个社区,在这里能够感受到技术人的热情与执着。这个社区还维护着国内的稳定的 gem 源,感谢作者及团队的默默付出!
  • Alexandre Rousseau :十分感谢该作者的文献,该作者的文档写的极具水平,能把知识溶于简单的语言,十分感激与敬佩。
  • theforeman :这是一只十分优秀的团队,一直在维护着十分优秀的项目!本书代码的一些灵感来源于该团队的开源项目,十分感激!

本书参与者【排名不分先后】

期待

期待本书中的内容可以为读者提供有意义的指导,如果阅读中遇到什么问题,或者有好的建议,您可以发送邮件到我的邮箱:[email protected]

最后,期待我们一起奋力前行,让努力的人不孤单!加油,伙伴们!!!

支持楼主,反手就是一个 star

7 楼 已删除

Thanks to TerryFunggg for your commit, my parter.🍻

Thanks for kba977 to join us!🍻

楼主牛逼,已 star,顺便问下有代码仓库地址吗

imanner 回复

好的,赞美楼主

welcome new parter Kaizhao Zhang 🍺

支持,可以跟着学习一下🐂 🍺

文档写的很认真。项目的话后续可以进一步完善。比如注册登录模块,支持用户手机短信验证码注册,忘记密码找回(这块可以演示集成第三方短信 API,action mailer 邮件发送等)等。商品模块可以演示文件上传的功能(active storage 或 carrierwave 等)。订单模块中可以增加订单状态的管理(可以用 aasm),集成支付网关(微信、支付宝支付 SDK,余额、优惠券支付等),支付完成后可以考虑用 websocket(action cable)通知前端。接下来就是订单支付完成之后通过后台任务(sidekiq 等)处理出单、通知(短信或者微信公众号通知)、开票、物流的追踪等等。还要考虑订单的搜索过滤功能,量大的话就得考虑怎么用 elasticsearch 来加快搜索速度。作为一个电商项目,后台管理也是很重要的环节。这一块包括商品管理、优惠券、结算、售后等。如果这些搞完可以继续用 vue 或者 react 做一下前端项目...

如果能够写个 Rails Application Templates 会不会更好呢 https://guides.rubyonrails.org/rails_application_templates.html

welcome new parter VictorNanka

woquxizang 回复

一起加油!!!

yeah, I'm join in.

为大佬点赞💪

需要 登录 后方可回复, 如果你还没有账号请 注册新账号