REST风格的在线调查系统的设计与实现的中期报告.docx
REST风格的在线调查系统的设计与实现的中期报告
中期报告
1.引言
本文介绍的是一种基于REST风格的在线调查系统的设计和实现。在这个系统里,用户可以创建自己的调查问卷,然后发送给其他人来进行回答和收集数据。我们采用了RESTfulAPI作为系统的核心架构,同时支持跨平台和数据安全等功能。
2.系统设计
2.1RESTfulAPI
RESTfulAPI是我们系统的核心架构。我们采用了这种设计模式,因为RESTfulAPI具有松耦合、灵活、易扩展等优点。我们的API设计遵循RESTful风格,即资源(Resource)通过URI暴露给客户端,客户端使用不同的HTTP方法来对资源进行操作。我们的系统具有以下资源:
-问卷(Questionnaire):代表一个问卷,包含多个问题
-问题(Question):代表一个问题,包含多个答案选项
-答案(Answer):代表一个答案,包括回答者的信息和具体回答内容
我们的API设计如下:
-GET/questionnaires:获取所有问卷
-GET/questionnaires/{id}:获取指定ID的问卷
-POST/questionnaires:创建一个问卷
-PUT/questionnaires/{id}:更新指定ID的问卷
-DELETE/questionnaires/{id}:删除指定ID的问卷
-GET/questionnaires/{id}/questions:获取指定问卷的所有问题
-GET/questions/{id}:获取指定ID的问题
-POST/questions:创建一个问题
-PUT/questions/{id}:更新指定ID的问题
-DELETE/questions/{id}:删除指定ID的问题
-GET/questions/{id}/answers:获取指定问题的所有答案
-GET/answers/{id}:获取指定ID的答案
-POST/answers:创建一个答案
-PUT/answers/{id}:更新指定ID的答案
-DELETE/answers/{id}:删除指定ID的答案
其中,GET/questionnaires和POST/questionnaires被设计为公共API,任何人都可以访问。其他API都需要用户登录后才能访问。
2.2跨平台
为了实现跨平台的功能,我们采用了前后端分离的设计模式。前端使用AngularJS框架实现。这个框架具有模块化、MVC分层等特点,可以方便地开发单页应用。前端将用户的请求转发给后端RESTfulAPI,同时展示调查问卷数据。后端采用Java语言编写,使用SpringMVC框架实现RESTfulAPI的支持。我们还提供了Android客户端,用户可以通过这个客户端在移动设备上使用系统。
2.3数据安全
为了保证数据的安全性,我们采用了以下措施:
-所有用户使用HTTPS协议访问系统
-用户密码在传输和存储时使用SHA-256算法加密
-用户登录后生成的Token使用Base64编码,不包含任何敏感信息
-所有的API接口都需要用户登录认证才能访问
-数据库使用了预编译语句,避免SQL注入攻击
3.实现进度
目前系统的前端和后端均已基本完成。我们目前正在进行Android客户端的开发和测试。系统的主要功能已经实现,包括创建问卷、回答问卷、收集和展示数据等。我们计划在未来几周内完成所有测试,并对系统进行优化和完善。
4.总结
本文介绍了一种基于RESTfulAPI的在线调查系统的设计和实现。我们遵循RESTful风格设计了API,支持跨平台和数据安全。目前系统的前后端均已完成,正在进行Android客户端的测试和开发。