0

시험 연습용 모바일 앱을 제작 중입니다. 시험 세부 사항 및 질문에 대한 API 엔드 포인트가 필요합니다. sails.js에서 데이터를 구조화하는 데 도움이 필요합니다. Firebase의 JSON 구조를 염두에두고 있습니다.시험용 sailsjs API의 응용 프로그램 모델 구조

엔드 포인트 GET 작업이 반환해야합니다 :

waec이 시험은
  { 
      "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 
       } 
       ] 
      }  
    } 

, 1990 년, 그리고 화학이 될 수 있습니다.

http://someappurl.com/api/exam/{exam}/{year}/{subject} 

돛 생성 명령을 사용하여 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' 
        } 
       ] 
       } 
      ] 
      } 
     ] 
     } 
    } 
    } 
+0

귀하의 JSON은 n은 유효합니다. 중복 키가 있고 많은 요소 이름이 큰 따옴표로 묶이지 않습니다. 이 문제를 해결 한 후 포맷터를 통해 실행하십시오. 그렇지 않으면 사람들이 어떻게 읽어야합니까? –

답변

0

당신은 모델을 올바르게 사용하지 않고있다. 각 Model.js는 테이블이고 각 속성은 하나의 열이라고 생각하십시오.

// api/models/Exam.js 
module.exports = { 
    attributes: { 
    name: { 
     type: 'string', 
    }, 
    year: { 
     type: 'integer' 
    }, 
    subject: { 
     type: 'string', 
    }, 
    question: { 
     type: 'string', 
    }, 
    answers: { 
     type: 'array', 
    } 
    } 
}; 

을 그리고 컨트롤러에 당신은 DB에서 데이터를 표시하는 방법을 정의합니다 :

그래서, 당신의 Exam.js은 다음과 같이 할 수 있습니다. 당신은 문서에 항해 모델과 컨트롤러에 대해 자세히 알아볼 수 있습니다 :

예 프로젝트 :