本文主要是介绍[云开发1]-快速开发一个问卷调查云应用(后端),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
通过Sails.js开发RESTful API
阅读这篇blog大约需要5分钟
通过一个小例子MVP来学习一下Sails.js这个框架。模拟的场景需求是设计一个问卷调查。
后端使用Sails.js,前端通过OpenUI5来实现。
The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time. --Tom Cargill
创建模型
简单设计了一下,一个问卷会包含多个问题,每个用户填完后就是一个反馈。每个反馈里包含了全部的问题回答。主要包括这些数据:
- Questionaires 问卷
- Questions 问题
- Feedbacks 反馈
- Answers 每个问题的回答
依次通过sails的命令来创建api:
sails generate api Questionairessails generate api Questionssails genreate api Feedbackssails genrate api Answers
Sails.js会通过Waterline的ORM来自动根据模型定义来自动生成表和关系。而且Sails.js默认自带了一个简单的数据库实现,它是通过JSON文件保存的。
自定义API
开发一个自定义的api,可以通过action来完成。
sails generate action /feedback/create
它会自动生成文件controller/feedback/create.js,定制代码写在create.js中。这里是接口函数代码:
fn: async function (inputs) {Questionnaires.create(q);const feedback = {"fb_owner": inputs.id};const createdFeedback = await Feedbacks.create(feedback).fetch();let answers = inputs.answers.map((input) => {input.feedback = createdFeedback.id;return input;});const createdAnswers = await Answers.createEach(answers).fetch();return createdFeedback;}
自定义路由
修改config/routes.js文件,增加一行配置:
'POST /api/v1/feedback/create' : {action: 'feedback/create'},
API测试
http://localhost:1337/api/v1/feedback/create
POST数据创建一个问卷反馈:
{
"id": 11,
"answers": [
{"question": 21,"answer": 0
},
{"question": 22,"answer": 1
},
{"question": 23,"answer": 2
}
]
}
返回数据:
states 201 ok.
后台数据创建成功。
{"createdAt": 1581583005224,"updatedAt": 1581583005224,"id": 9,"fb_owner": 11
}
小结
在这个例子中只是用到了Sails.js里API的一小部分功能,它是一个类似Ruby on rails的JS框架,个人感觉还是很方便的,对于原型demo开发,能够节约不少的时间。
项目代码
- https://github.com/rangwei/cloud-blogs/tree/master/b08/arctic-db
参考阅读
- https://sailsjs.com/documentation/concepts
这篇关于[云开发1]-快速开发一个问卷调查云应用(后端)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!