api接口的一些设计原则和最佳实践
1. 单一职责原则(Single Responsibility Principle, SRP)
- 每个模块或函数应该只负责一件事情。新增接口的职责就是接收新数据并插入数据库,而不是处理自动生成的字段。
2. 最小惊讶原则(Principle of Least Astonishment, POLA)
- 系统应该按照用户或开发者预期的方式工作。自动生成的字段不应该由客户端提供,因为这会违反常规做法,容易导致混淆和错误。
3. 安全性原则
- 不让客户端传递自动生成的字段可以避免潜在的安全问题,例如数据伪造和篡改。确保数据的真实性和完整性。
4. 简化设计(KISS - Keep It Simple, Stupid)
- 保持设计简单,避免不必要的复杂性。只处理需要的字段,减少代码中的冗余和潜在错误。
5. 封装(Encapsulation)
- 封装数据库操作细节,客户端不需要关心数据库是如何生成id和创建时间的,只需要得到结果。这也是一种信息隐藏的方式。
实践中的体现
在实际开发中,遵循这些原则可以提高代码的可维护性、安全性和可读性。例如:
- 数据库自动生成字段:让数据库来生成id、创建时间等字段,可以保证数据的一致性和唯一性,避免手动处理带来的错误。
- API设计:在API设计中,明确哪些字段是客户端需要提供的,哪些是由服务器生成的,保证接口的清晰性和可靠性。
Talk is cheap. Show me the code.
-Linux 创始人 Linus Torvalds
从请求体上下文ctx.user中只取该接口控制器AuthController需要的字段数据,其中创建上下文的中间件verifyAuth可以应用在不同的路由/业务接口中。



cos的上传需要返回https链接,符合高版本chrome浏览器的安全策略以及最佳做法


扩展阅读
继续阅读
基于全文检索与主题相似度
Rust设计思想引申到JavaScript程序设计
本文探讨了如何将Rust语言的设计理念融入JavaScript开发,以提升代码的可靠性与性能。核心借鉴点包括:通过明确资源管理借鉴所有权思想;利用不可变数据结构(如Immutable.js)减少状态复杂性;引入TypeScript增强类型安全性;以及通过模式匹配优化控制流。此外,文章指出JavaScript可借助ESLint、Web Workers等工具实现类似Rust的安全性、高效内存管理与并发处理。通过采纳这些设计哲学,开发者能够编写出更健壮、易于维护的现代JavaScript应用。
excel公式引擎方案设计
本文探讨了前端电子表格计算引擎的实现方案,旨在解决海量数据处理中的逻辑运算与统计需求。核心挑战在于构建单元格间的复杂依赖关系以实现自动更新,以及对公式字符串进行词法解析。文章详细介绍了公式的组成要素(函数、常量、引用及运算符),并重点分析了基于表达式模板与引用位置组合的存储机制。此外,文中还阐述了相对引用、绝对引用及混合引用的实现原理,为设计高效、智能的表格计算引擎提供了理论基础与架构思路。
前端编程范式与设计模式
本文探讨了前端开发中提升代码质量的核心编程范式与设计模式。在编程范式方面,重点介绍了异步编程(Promise/async/await)、面向对象编程(封装与继承)、函数式编程(纯函数与高阶函数)以及反应式编程(RxJS事件流)。在设计模式部分,详细阐述了单例、工厂、观察者及装饰者模式的实际应用。掌握这些技术有助于开发者构建更具可维护性、扩展性和可读性的高质量前端项目。