【发布时间】:2017-02-08 09:09:25
【问题描述】:
我正在构建一个用于考试练习的移动应用。我需要一个 API 端点来获取考试详细信息和问题。我需要帮助来构建我在sails.js 中的数据。我想到了这个来自 firebase 的 JSON 结构。
端点 GET 操作应返回:
{
"8h9iuhiuhi89h98h": {
"exam": "waec",
"year": "1990",
"subject": "chemistry",
"question": "Which of these is not an acid",
"answers": [
{
option: "NaCl",
isValid: true
},
{
option: "H<sub>2</sub>SO<sub>4</sub>",
isValid: false
},
{
option: "H<sub>3</sub>",
isValid: false
},
{
option: "HCl",
isValid: false
}
]
},
"8h9iuhiuhi89h98h": {
"exam": "waec",
"year": "1990",
"subject": "chemistry",
"question": "Which of these is not an acid",
"answers": [
{
option: "NaCl",
isValid: true
},
{
option: "H<sub>2</sub>SO<sub>4</sub>",
isValid: false
},
{
option: "H<sub>3</sub>",
isValid: false
},
{
option: "HCl",
isValid: false
}
]
},
"8h9iuhiuhi89h98h": {
"exam": "waec",
"year": "1990",
"subject": "chemistry",
"question": "Which of these is not an acid",
"answers": [
{
option: "NaCl",
isValid: true
},
{
option: "H<sub>2</sub>SO<sub>4</sub>",
isValid: false
},
{
option: "H<sub>3</sub>",
isValid: false
},
{
option: "HCl",
isValid: false
}
]
},
"8h9iuhiuhi89h98h": {
"exam": "waec",
"year": "1990",
"subject": "chemistry",
"question": "Which of these is not an acid",
"answers": [
{
option: "NaCl",
isValid: true
},
{
option: "H<sub>2</sub>SO<sub>4</sub>",
isValid: false
},
{
option: "H<sub>3</sub>",
isValid: false
},
{
option: "HCl",
isValid: false
}
]
}
}
其中 waec 是考试,1990 年是年份,化学是科目。
http://someappurl.com/api/exam/{exam}/{year}/{subject}
我使用sails generate 命令生成了API。但我不知道如何构造和查询我的数据。如何构建我的架构? 我有一个像这样的帆模型结构
attributes: {
exams: {
exam_name: 'string',
years: {
exam_year: 'string',
subjects:[
{
subject_name: 'string',
questions: [
{
serial_no: 'string',
text: 'string',
answers:[
{
option: 'string',
is_valid: 'boolean'
}
]
}
]
}
]
}
}
}
【问题讨论】:
-
您的 JSON 无效。您有重复的键,并且许多元素名称没有用双引号括起来。请更正它,然后通过格式化程序运行它,否则人们应该如何阅读它?
标签: sails.js database-schema jsonschema api-design sails-mongo