# 碎片化知识点

# 手册合集

<table border="1" id="bkmrk-dcs%E6%96%87%E6%A1%A3-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 10%;">[Hyperf手册](https://hyperf.wiki/2.0/#/)</td><td style="width: 10%;">[TypeScript 入门教程](https://ts.xcatliu.com/)</td><td style="width: 10%;">[阿里云产品手册](https://www.alibabacloud.com/help/zh/)</td><td style="width: 10%;">[ES6 入门教程(阮一峰)](https://es6.ruanyifeng.com/)</td></tr><tr><td style="width: 10%;">[Nacos文档](https://nacos.io/zh-cn/docs/what-is-nacos.html)</td><td style="width: 10%;">[容器监控](https://yasongxu.gitbook.io/container-monitor/)</td><td style="width: 10%;">[Taro文档](https://taro-docs.jd.com/taro/docs/README/index.html)</td><td style="width: 10%;">[书栈网](https://www.bookstack.cn/)</td></tr><tr><td style="width: 10%;">[TypeScript 入门教程](http://ts.xcatliu.com/)</td><td style="width: 10%;">[QueryList](http://www.querylist.cc/)</td><td style="width: 10%;">[wangEditor手册](https://doc.wangeditor.com/)</td><td style="width: 10%;">[Element手册](https://element.eleme.cn/#/zh-CN/component/installation)</td></tr><tr><td style="width: 10%;">[Swoole手册](https://wiki.swoole.com/#/)</td><td style="width: 10%;">[Angular中文](https://angular.cn/docs)</td><td style="width: 10%;">[Docker中文](https://www.docker.org.cn/)</td><td style="width: 10%;">[Laravel 10 中文文档](https://learnku.com/docs/laravel/10.x)</td></tr><tr><td style="width: 10%;">[Lumen 中文文档(6.x)](https://learnku.com/docs/lumen/6.x)</td><td style="width: 10%;">[Yii2权威指南](https://www.yiichina.com/doc/guide/2.0)</td><td style="width: 10%;">[Guzzle中文文档](https://guzzle-cn.readthedocs.io/zh_CN/latest/index.html)</td><td style="width: 10%;">[DCS文档](http://guide.daocloud.io/dcs/daocloud-services-9152632.html)</td></tr><tr><td style="width: 10%;">[Carbon文档](https://carbon.nesbot.com/docs/)</td><td style="width: 10%;">[Markdown 官方教程](https://markdown.com.cn/intro.html)</td><td style="width: 10%;">  
</td><td style="width: 10%;">[阮一峰](http://www.ruanyifeng.com/home.html)</td></tr></tbody></table>

# 常用Gitlab资源

##### 系列资源

<table border="1" id="bkmrk-vim%E6%8F%92%E4%BB%B6%E8%B5%84%E6%BA%90-vue%E7%AC%AC%E4%B8%89%E6%96%B9%E5%B8%B8%E7%94%A8%E5%8C%85-ma" style="border-collapse: collapse; width: 100%;"><tbody><tr><td class="align-center" style="width: 24.9753%;">Vim插件资源</td><td class="align-center" style="width: 24.9753%;">Vue第三方常用包</td><td class="align-center" style="width: 24.9753%;">前端项目实践</td><td class="align-center" style="width: 24.9753%;">Hyperf</td></tr><tr><td class="align-center" style="width: 24.9753%;">PHP类库</td><td class="align-center" style="width: 24.9753%;">  
</td><td class="align-center" style="width: 24.9753%;">  
</td><td class="align-center" style="width: 24.9753%;">  
</td></tr></tbody></table>

##### 后端项目

- **<span style="color: #ba372a;">[开源电子商城](https://github.com/fecshop/yii2_fecshop)</span> ( *fecshop/yii2\_fecshop* )：**yii2 ( PHP ) fecmall（fecshop） core code used for ecommerce shop 多语言多货币多入口的开源电商 B2C 商城，支持移动端vue, app, html5，微信小程序微店，微信小程序商城等 http://www.fecmall.com
- **<span style="color: #ba372a;">[WoCenter项目](https://github.com/Wonail/wocenter_advanced)</span> ( *Wonail/wocenter\_advanced* )：**基于WoCenter开发的一款优秀的高度可扩展的高级项目模板，项目集&gt;成用户管理、安全管理、扩展中心、系统管理、运营管理等多个模块
- **<span style="color: #ba372a;">[laravel 小说网](https://github.com/copyrenzhe/novel)</span> ( *copyrenzhe/novel* )：**基于 Laravel 5.2 的小说网站 http://www.shu000.com
- **<span style="color: #ba372a;">[在线阅读](https://github.com/WalkingFrog/NovelSite)</span> ( *WalkingFrog/NovelSite* )：**课程设计：在线阅读小说网站的设计与实现
- **<span style="color: #ba372a;">[小说阅读](https://github.com/howie6879/owllook)</span> ( *howie6879/owllook* )：**owllook-在线网络小说阅读网站&amp;小说搜索引擎&amp;小说推荐系统\[搜索、追书、收藏、 追更、小说API\] https://www.owllook.net
- **<span style="color: #ba372a;">[docker-php项目](https://github.com/MQEnergy/MQCMS)</span> (  *MQEnergy/MQCMS*  )：**
- **[Hyperf-docker](https://github.com/teg1c/hyperf-microserver) ( teg1c/hyperf-microserver )：**hyperf 微服务 docker
- [**微博爬虫**](https://github.com/Hanson/weibot) **( Hanson/weibot )：**微博爬虫，模拟登录，数据抓取
- [**微信机器人**](https://github.com/Hanson/vbot) **( Hanson/vbot )：**企微、企业微信、微信机器人，聚合聊天，协议，hook，逆向，worktool，群发，自动回复，chatgpt，API对接，稳定防封全语言通用，企业定制/SCRM/SAAS专用。[https://apifox.com/apidoc/shared-71b9855b-693c-48fc-858b-cde2c5afe5a8/doc-1674150](https://apifox.com/apidoc/shared-71b9855b-693c-48fc-858b-cde2c5afe5a8/doc-1674150)
- **[安正超](https://github.com/overtrue/) ( overtrue )：**提供了wechat、pinyin、socialite等大量优质PHP插件
- **[MQEnergy](https://github.com/MQEnergy) ( MQEnergy )：**MQEnergy is a high quality open source organization. Our main languages are PHP, JS, Go. We will continue to export quality projects. I hope you can support me and Give us a star ⭐️ to encourage. This is what drives us to keep updating. Thanks ！
- **[Hyperf微服务集群](https://github.com/Jochen-z/php-microservice-demo) ( Jochen-z/php-microservice-demo )：**Docker+Consul+Hyperf 搭建 PHP 微服务集群
- **[Hyperf微服务实战](https://github.com/donjan-deng/la-user-center) ( donjan-deng/la-user-center )：**《PHP微服务练兵》系列教程源码 [https://blog.csdn.net/donjan/article/details/103005084](https://blog.csdn.net/donjan/article/details/103005084)

##### Uniapp项目

- **[培训考试小程序](https://github.com/612-A-34/trainingExam) ( 612-A-34/trainingExam )：**基于uniapp的小型培训、学习、考试的小程序（h5）。包含简单登录、学习列表、学习详情、考试记录等
- **[RageFrame2商城](https://github.com/stavyan/TinyShop-UniApp) ( stavyan/TinyShop-UniApp )：**基于 RageFrame2 的一款免费开源的基础商城销售功能的开源微商城。http://h5.tinyshop.rageframe.com/[http://h5.tinyshop.rageframe.com/](http://h5.tinyshop.rageframe.com/)
- **[JEECG BOOT APP 移动解决方案](https://github.com/jeecgboot/jeecg-uniapp) ( jeecgboot/jeecg-uniapp )：**JEECG BOOT APP 移动解决方案，采用uniapp框架，一份代码多终端适配，同时支持APP、小程序、H5！实现了与JeecgBoot平台完美对接的移动解决方案！目前已经实现登录、用户信息、通讯录、公告、移动首页、九宫格等基础功能。[http://www.jeecg.com/](http://www.jeecg.com/)
- **[微慕小程序](https://github.com/iamxjb/winxin-app-watch-life.net) ( iamxjb/winxin-app-watch-life.net )：**微慕小程序开源版-WordPress版微信小程序 [https://www.watch-life.net/](https://www.watch-life.net/)
- **[Shopro分销商城](https://github.com/ITmonkey-cn/shopro-uniapp) ( ITmonkey-cn/shopro-uniapp )：**Shopro分销商城 uniapp前端开源代码，一款落地生产的 基于uni-app的多端商城。[https://www.shopro.top](https://www.shopro.top)
- **[商城系统](https://github.com/lilishop/lilishop-uniapp) ( lilishop/lilishop-uniapp )：**开源商城系统-JAVA商城-LILISHOP [https://pickmall.cn/](https://pickmall.cn/)
- **[微信诗歌起名小程序](https://github.com/calvin008/createName) ( calvin008/createName )：**基于uni-app+unicloud实现微信诗歌起名小程序-五格三才-周易起名-八字起名-宝宝起名-周易模块更新中
- **[课件小程序](https://github.com/qifan777/courseware) ( qifan777/courseware )：**springboot+uni-app+vue-cli写一个可以卖课件,且在线预览课件的小程序。微信支付。
- **[红包外卖优惠券](https://github.com/zwpro/coupons) ( zwpro/coupons )：**美团饿了吗外卖红包外卖优惠券，先领红包再下单。外卖红包优惠券，cps分成，别人领红包下单，你拿佣金。

##### 小程序项目

- **<span style="color: #ba372a;">[小程序 UI 组件库](https://github.com/youzan/vant-weapp)</span> ( *youzan/vant-weapp* )：**轻量、可靠的小程序 UI 组件库 https://youzan.github.io/vant-weapp
- **<span style="color: #ba372a;">[开源微信小程序商城](https://github.com/tumobi/nideshop-mini-program)</span> ( *tumobi/nideshop-mini-program* )：**NideShop：基于Node.js+MySQL开发的开源微信小程序商城（微信小程序） https://www.nideshop.com/
- **<span style="color: #ba372a;">[基于wepy 商城](https://github.com/dyq086/wepy-mall)</span> ( *dyq086/wepy-mall* )：**微信小程序--基于wepy 商城(微店)微信小程序 欢迎学习交流
- **<span style="color: #ba372a;">[图书商城 ](https://github.com/KingJeason/wepy-books)</span> ( *KingJeason/wepy-books* )：**微信小程序/wepy/图书商城
- **<span style="color: #ba372a;">[微信小程序商城](https://github.com/EastWorld/wechat-app-mall)</span> ( *EastWorld/wechat-app-mall* )：**微信小程序商城，微信小程序微店
- **<span style="color: #ba372a;">[在线阅读](https://github.com/EchoDzg/SpBook)</span> ( *EchoDzg/SpBook* )：**基于mpvue框架打造的小程序在线阅读书城
- **<span style="color: #ba372a;">[店铺商家管理](https://github.com/coolhwm/leshare-seller-wepy)</span> ( *coolhwm/leshare-seller-wepy* )：**基于小程序的店铺商家管理端，采用wepy框架开发
- **<span style="color: #ba372a;">[wepy商城](https://github.com/coolhwm/leshare-shop-wepy)</span> ( *coolhwm/leshare-shop-wepy* )：**基于微信小程序的在线商城，采用wepy框架开发
- **<span style="color: #ba372a;">[小说阅读](https://github.com/Andyliwr/mbook)</span> ( *Andyliwr/mbook* )：**完成度和页面效果比较差，跟提供的小程序不一致。毕业设计--基于微信小程序的在线免费小说应用
- **<span style="color: #ba372a;">[智能家居](https://github.com/tustman/smart-home)</span> ( *tustman/smart-home* )：**参照米家APP布局和样式,编写的一款智能家居小程序 https://github.com/tustman/smart-home
- **<span style="color: #ba372a;">[小说阅读](https://github.com/zprial/wx-book)</span> ( *zprial/wx-book* )：**仿追书神器的小说阅读器小程序
- **<span style="color: #ba372a;">[小程序商城](https://github.com/liuxuanqiang/wechat-weapp-mall)</span> ( *liuxuanqiang/wechat-weapp-mall* )：**微信小程序-移动端商城
- **<span style="color: #ba372a;">[小程序商城](https://github.com/skyvow/m-mall)</span> ( *skyvow/m-mall* )：**微信小程序-小商城前台（基于 WeUI.wxss、ES6 前端技术开发...）
- **<span style="color: #ba372a;">[小程序demo](https://github.com/wechat-miniprogram/miniprogram-demo)</span> ( *wechat-miniprogram/miniprogram-demo* )：**微信小程序组件 / API / 云开发示例 https://developers.weixin.qq.com/mini…
- **<span style="color: #ba372a;">[微信小程序开发资源汇总](https://github.com/justjavac/awesome-wechat-weapp)</span> ( *justjavac/awesome-wechat-weapp* )：**微信小程序开发资源汇总

##### 前端项目

- ****<span style="color: #ba372a;">[koa个人博客](https://github.com/lfb/nodejs-koa-blog)</span> ( lfb/nodejs-koa-blog )：****基于 Node.js Koa2 实战开发的一套完整的博客项目网站[www.boblog.com](http:www.boblog.com)
- **<span style="color: #ba372a;">[ts个人博客](https://github.com/eshengsky/iBlog)</span> ( eshengsky/iBlog )：**基于 Node.js 的开源个人博客系统，采用 Nuxt + Vue + TypeScript 技术栈。[https://skysun.name/](https://skysun.name/)
- **<span style="color: #ba372a;">[CRMEBv3.X版H5](https://github.com/crmeb/CRMEB-H5)</span> ( *crmeb/CRMEB-H5* )：**CRMEBv3.X版H5前端页面 http://www.crmeb.com
- **<span style="color: #ba372a;">[蘑菇街的单页应用](https://github.com/andylei18/vue-shopping)</span> ( *andylei18/vue-shopping* )：**基于Vue模仿蘑菇街的单页应用http://andylei18.github.io/vue-shopping/
- **<span style="color: #ba372a;">[移动书城](https://github.com/tgxhx/vue-reader)</span> ( *tgxhx/vue-reader* )：**vue技术栈+express+node爬虫写的移动书城 https://vue-reader.xyxxxx.xyz
- **<span style="color: #ba372a;">[阅读应用](https://github.com/zimplexing/vue-nReader)</span> ( *zimplexing/vue-nReader* )：**vue2.0 + vue-router + vuex 的 一个阅读webapp
- **<span style="color: #ba372a;">[仿饿了么](https://github.com/bailicangdu/vue2-elm)</span> ( *bailicangdu/vue2-elm* )：**基于 vue2 + vuex 构建一个具有 45 个页面的大型单页面应用
- **<span style="color: #ba372a;">[vivo商城](https://github.com/Mynameisfwk/vivo-shop)</span> ( *Mynameisfwk/vivo-shop* )：**基于vue2.0实现的vivo移动端商城(vue+vuex-ruoter+vue-axios+webpack)
- **<span style="color: #ba372a;">[vant商城](https://github.com/qianzhaoy/vant--mobile-mall)</span> ( *qianzhaoy/vant--mobile-mall* )：**基于有赞 vant 组件库的移动商城
- **<span style="color: #ba372a;">[vue商城](https://github.com/qiuChengleiy/shop-vue)</span> ( *qiuChengleiy/shop-vue* )：**vue-cli + vue-router + vuex + axios + vue-axios + vant( UI ) 移动端商城 APP项目
- **<span style="color: #ba372a;">[小商城后台](https://github.com/skyvow/m-mall-admin)</span> ( *skyvow/m-mall-admin* )：**微信小程序-小商城后台（基于 Node.js、MongoDB、Redis 开发的系统...）
- **<span style="color: #ba372a;">[电商后台](https://github.com/macrozheng/mall-admin-web)</span> ( *macrozheng/mall-admin-web* )：**mall-admin-web是一个电商后台管理系统的前端项目，基于Vue+Element实现。 主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等功能。 http://www.macrozheng.com/admin/
- **<span style="color: #ba372a;">[仿拉勾](https://github.com/qianbin01/lagou_vue)</span> ( *qianbin01/lagou\_vue* )：**vue全家桶拉勾版，含爬虫，前后端，数据分析
- **<span style="color: #ba372a;">[电商系统](https://github.com/wjima/Jshop_mall)</span> ( *wjima/Jshop\_mall* )：**Jshop小程序商城，是一款开源的支持可视化布局的电商系统，包含微信小程序、支付宝&gt;小程序、APP、公众号、H5端、PC端、抖音小程序、今日头条小程序、皮皮虾小程序、西瓜视频小程序，为大中小企业提供移动电子商务优秀的解决方案。 https://www.jihainet.com/
- **<span style="color: #ba372a;">[vant-demo](https://github.com/youzan/vant-demo)</span> ( *youzan/vant-demo* )：**Collection of vant demos. https://youzan.github.io/vant-demo
- **<span style="color: #ba372a;">[vant商城](https://github.com/gilbert-yuan/vant_shop)</span> ( *gilbert-yuan/vant\_shop* )：**vant商城
- **<span style="color: #ba372a;">[vue-admin](https://github.com/mywangcang/vue-project)</span> ( *mywangcang/vue-project* )：** A project based Vue.
- **<span style="color: #ba372a;">[去约](https://github.com/hzzly/xyy-vue)</span> ( *hzzly/xyy-vue* )：**基于vue+vue-router+vuex+axios+webpack开发的个人Demo《Qu约》 http://hzzly.net/xyy/
- **<span style="color: #ba372a;">[vue资源汇总](https://github.com/opendigg/awesome-github-vue)</span> ( *opendigg/awesome-github-vue*  )：**
- **<span style="color: #ba372a;">[淘宝客api](https://github.com/luzhanbo/taobaokeapi)</span> ( *luzhanbo/taobaokeapi* )：**
- **<span style="color: #ba372a;">[个人博客](https://github.com/lin-xin/blog)</span> ( *lin-xin/blog* )：**
- **<span style="color: #ba372a;">[淘宝客](https://github.com/lanix516/tbkshop)</span> ( *lanix516/tbkshop* )：**

##### 其他

- **<span style="color: #ba372a;">[NPM类库](https://github.com/xiedajian/relation-chart)</span> ( *xiedajian/relation-chart* )：**绘制人物关系图谱的 npm 包
- **<span style="color: #ba372a;">[移动端项目](https://github.com/wqb2017/vue-vant-axios)</span> ( *wqb2017/vue-vant-axios* )：**vue-vantUI-axios 移动端项目，rem做适配
- **<span style="color: #ba372a;">[webpack4](https://github.com/dfcook/vue-webpack4-template)</span> ( *dfcook/vue-webpack4-template* )：**VueJs template using Webpack 4
- **<span style="color: #ba372a;">[webpack4-template](https://github.com/vedees/webpack-template)</span> ( *vedees/webpack-template* )：**Webpack 4 template. Vue, Babel 7v, Sass / css / postcss (autoprefixer &amp; css-nano &amp; css-mqpacker) https://www.youtube.com/playlist?list…
- **<span style="color: #ba372a;">[支付SDK](https://github.com/yansongda/pay)</span> ( *yansongda/pay* )：**可能是我用过的最优雅的 Alipay 和 WeChat 的支付 SDK 扩展包了 http://pay.yansongda.cn
- **<span style="color: #ba372a;">[VantUI](https://github.com/youzan/vant)</span> ( *youzan/vant* )：**Lightweight Mobile UI Components built on Vue https://youzan.github.io/vant
- **<span style="color: #ba372a;">[微信支付](https://github.com/dedemao/weixinPay)</span> ( *dedemao/weixinPay* )：**微信支付单文件版。一个PHP文件搞定微信支付系列。包括原生支付（扫码支付），H5支 付，公众号支付，现金红包、企业付款到零钱等
- **<span style="color: #ba372a;">[EasyWeChat](https://github.com/overtrue/wechat)</span> ( *overtrue/wechat* )：**It is probably the best SDK in the world for developing WeChat App. https://www.easywechat.com
- **<span style="color: #ba372a;">[支付宝SDK](https://github.com/dedemao/alipay)</span> ( *dedemao/alipay* )：**一个PHP文件搞定支付宝支付系列，包括电脑网站支付，手机网站支付，现金红包、扫码&gt;支付，JSAPI支付、单笔转账到支付宝账户、交易结算（分账、分润）、网页授权获取用户信息等
- **<span style="color: #ba372a;">[AdminLTE](https://github.com/almasaeed2010/AdminLTE)</span> ( *almasaeed2010/AdminLTE* )：**AdminLTE - Free admin dashboard template based on Bootstrap 4 &amp; 3 https://adminlte.io
- **<span style="color: #ba372a;">[vue 工具](https://github.com/vuejs/vue-devtools.git)</span> ( *vuejs/vue-devtools.git* )：**Browser devtools extension for debugging Vue.js applications.
- **<span style="color: #ba372a;">[多页面多路由项目](https://github.com/chen1218chen/vue-cli-multi-page)</span> ( *chen1218chen/vue-cli-multi-page* )：**基于vue-cli模板的多页面多路由项目，一个PC端页面 入口，一个移动端页面入口，且有各自的路由， vue+webpack+vue-router+vuex+mock+axios
- **<span style="color: #ba372a;">[vue功能模块](https://github.com/superman66/vue-axios-github)</span> ( *superman66/vue-axios-github* )：**Vue 全家桶 + axios 前端实现登录拦截、登出、拦截器等功能 http://superman66.github.io/vue-axios…
- **<span style="color: #ba372a;">[vue-验证码](https://github.com/GeSnowBoy/vue-gecode)</span> ( *GeSnowBoy/vue-gecode* )：**基于Vue2.0获取手机验证码插件,可高度自定义.
- **<span style="color: #ba372a;">[第三方授权](https://github.com/mvpleung/vue-simple)</span> ( *mvpleung/vue-simple* )：**vue全家桶模板，支持微信、支付宝网页授权，支持路由跳转、登录拦截等等，可以 直接开发业务代码
- **<span style="color: #ba372a;">[公众号授权](https://github.com/wshshra/vue-wechat-plugin)</span> ( *wshshra/vue-wechat-plugin* )：**vue微信公众号授权插件
- **<span style="color: #ba372a;">[小程序组件](https://github.com/Tencent/wepy)</span> ( *Tencent/wepy* )：**小程序组件化开发框架 https://wepyjs.github.io/wepy-docs/
- **<span style="color: #ba372a;">[飞鱼（头条）SDK](https://github.com/liamhao/FeiYuCRM)</span> ( *feiyu* )：**
- **<span style="color: #ba372a;">[后端文摘](https://github.com/zhaocong6/Reading)</span> ( *zhaocong6/Reading* )：整理阅读过的干货文章, 帖子**
- **<span style="color: #ba372a;">[Vue2.x 全家桶+Vant](https://github.com/Geek-James/ddBuy)</span> ( *Geek-James/ddBuy* )：**Vue2.x 全家桶+Vant 搭建大型单页面电商项目.http://ddbuy.7-orange.cn
- **<span style="color: #ba372a;">[Laravel-Swoole](https://github.com/hhxsv5/laravel-s)</span> ( *laravel-s* )：**

# RESTful 架构与最佳实践

## 什么是 RESTful

RESTful (Representational State Transfer) 是一种软件架构风格，用于设计网络应用程序的接口。它基于 HTTP 协议，使用标准的 HTTP 方法 (GET, POST, PUT, DELETE 等) 来操作资源。

## RESTful 核心原则

1. **资源导向**：将数据或服务抽象为资源
2. **统一接口**：使用标准的 HTTP 方法
3. **无状态**：每个请求包含所有必要信息
4. **可缓存**：响应应明确是否可缓存
5. **分层系统**：客户端无需知道是否直接连接服务器
6. **按需代码**（可选）：可下载并执行客户端脚本

## RESTful 最佳实践

### 1. 资源命名规范

- 使用名词而非动词表示资源 
    - 好: `/users`
    - 不好: `/getUsers`
- 使用复数形式 
    - 好: `/products`
    - 不好: `/product`
- 层级关系表达 
    - `/users/{userId}/orders`

### 2. HTTP 方法使用

<table id="bkmrk-%E6%96%B9%E6%B3%95-%E7%94%A8%E9%80%94-%E5%B9%82%E7%AD%89%E6%80%A7-%E5%AE%89%E5%85%A8%E6%80%A7-get-%E8%8E%B7%E5%8F%96"><thead><tr><th>方法</th><th>用途</th><th>幂等性</th><th>安全性</th></tr></thead><tbody><tr><td>GET</td><td>获取资源</td><td>是</td><td>是</td></tr><tr><td>POST</td><td>创建资源</td><td>否</td><td>否</td></tr><tr><td>PUT</td><td>更新整个资源</td><td>是</td><td>否</td></tr><tr><td>PATCH</td><td>部分更新资源</td><td>否</td><td>否</td></tr><tr><td>DELETE</td><td>删除资源</td><td>是</td><td>否</td></tr><tr><td>HEAD</td><td>获取资源元数据</td><td>是</td><td>是</td></tr><tr><td>OPTIONS</td><td>获取资源支持的通信选项</td><td>是</td><td>是</td></tr></tbody></table>

### 3. 状态码使用

- 2xx 成功 
    - 200 OK - 常规成功
    - 201 Created - 资源创建成功
    - 204 No Content - 成功但无返回内容
- 3xx 重定向 
    - 301 Moved Permanently
    - 304 Not Modified
- 4xx 客户端错误 
    - 400 Bad Request - 请求错误
    - 401 Unauthorized - 未认证
    - 403 Forbidden - 无权限
    - 404 Not Found - 资源不存在
- 5xx 服务端错误 
    - 500 Internal Server Error
    - 503 Service Unavailable

### 4. 版本控制

- URL 路径中: `/v1/users`
- 请求头中: `Accept: application/vnd.myapi.v1+json`

### 5. 过滤、排序和分页

- 过滤: `/users?role=admin`
- 排序: `/users?sort=-createdAt,name` (desc by createdAt, asc by name)
- 分页: `/users?page=2&limit=20`

### 6. 响应格式

- 使用 JSON 作为主要数据格式
- 包含自描述信息 (HATEOAS)
- 错误响应示例:

```json
{
  "error": {
    "code": "invalid_param",
    "message": "Email format is invalid",
    "target": "email"
  }
}

```

### 7. 安全实践

- 使用 HTTPS
- 认证: OAuth2, JWT
- 输入验证
- 速率限制
- CORS 配置

### 8. 性能优化

- 支持条件请求 (ETag, Last-Modified)
- 部分响应 (字段选择)
- 压缩响应
- 缓存控制头

## 示例 API 设计

```
GET    /articles          - 获取文章列表
POST   /articles          - 创建新文章
GET    /articles/{id}     - 获取特定文章
PUT    /articles/{id}     - 更新整篇文章
PATCH  /articles/{id}     - 部分更新文章
DELETE /articles/{id}     - 删除文章
GET    /articles/{id}/comments - 获取文章评论

```

遵循这些最佳实践可以帮助您设计出更加规范、易用且安全的 RESTful API。

[理解RESTful架构](https://www.ruanyifeng.com/blog/2011/09/restful.html "作者： 阮一峰")