本文档为希望向 Stirling-PDF 添加新功能的开发人员提供了全面的指南。它涵盖了系统架构、实现新功能的过程以及为项目贡献的最佳实践。
在向 Stirling-PDF 添加新功能之前,了解应用程序的整体架构非常重要
来源
其架构包括:
向 Stirling-PDF 添加新功能的过程通常遵循以下步骤
来源
让我们详细探讨每个步骤。
Stirling-PDF 中的每个功能都必须在 EndpointConfiguration 类中注册。这至关重要,因为它允许应用程序通过配置启用或禁用功能。
功能按以下组别组织,例如:
为您的功能选择合适的组,如果它不属于现有类别,则将其添加到“Other”中。
来源
模型类定义了您的功能所使用的数据结构。例如,一个请求模型
API 控制器处理 HTTP 请求并返回响应。它应该使用 @RestController 进行注解,并包含详细的 API 文档
来源
Web 控制器使用 Thymeleaf 模板渲染用户界面
来源
您的功能的核心功能应在工具类或服务中实现。对于 PDF 操作,您通常会向 PdfUtils 类添加方法
来源
为您的功能的用户界面创建一个 Thymeleaf 模板
如果您的功能需要客户端交互,请在 static/js/ 目录中的单独文件中添加 JavaScript 代码,并在您的模板中引用它。
将您的功能的翻译键添加到消息属性文件中
来源
在提交您的功能之前,请对其进行彻底测试
让我们通过一个完整的示例来演示如何实现一个将图像转换为 PDF 的功能
将功能添加到 EndpointConfiguration 类
创建 API 控制器
创建 Web 控制器
在 PdfUtils.java 中添加一个方法
创建 src/main/resources/templates/convert/img-to-pdf.html
将翻译添加到 messages_en_GB.properties
这是一个更详细的图表,展示了添加新功能时不同组件如何交互
来源
向 Stirling-PDF 添加新功能时,请遵循以下最佳实践
遵循现有模式:研究现有代码以理解项目的模式和约定
错误处理:实现适当的错误处理并向用户提供有意义的错误消息
国际化:始终使用消息属性进行文本显示,以支持多种语言
文档:添加全面的 Javadoc 注释并更新 API 文档
安全性:验证所有用户输入并确保文件操作安全
测试:使用各种输入和边缘情况彻底测试您的功能
代码组织:保持代码组织有序并遵循现有的包结构
功能注册:始终在 EndpointConfiguration 类中注册您的功能
一致的命名:使用与现有代码库一致的命名约定
贡献流程:提交更改时遵循项目的贡献指南
忘记注册端点:新功能必须在 EndpointConfiguration 类中注册
硬编码文本:始终使用翻译键而不是硬编码字符串
忽略安全性:验证所有用户输入以防止安全漏洞
缺少错误处理:始终处理异常并提供有意义的错误消息
紧密耦合的代码:将业务逻辑与控制器分离,以提高可维护性
测试不足:使用各种输入和边缘情况彻底测试您的功能
翻译不完整:为所有用户可见文本添加翻译键
忽略现有模式:遵循项目中已建立的编码模式
向 Stirling-PDF 添加新功能涉及理解应用程序架构、实现后端和前端组件、添加翻译以及进行彻底测试。遵循本文档中的指南,您可以贡献高质量的功能,使其与现有代码库无缝集成。
请记住,Stirling-PDF 项目遵循模块化架构,并明确分离关注点。这使得添加新功能更容易,而不会影响现有功能。通过仔细规划您的实现并遵循已建立的模式,您可以为项目贡献有价值的新功能。
来源