간단한 GET 요청에 문제가있는 RESTful 처리를 위해 Blueprint API와 함께 돛을 사용하고 있습니다. 예를 들어 다음 모델을 생각해보십시오. 우리는 Project
전화 할게 :필터 조건에서 모델 속성으로 정의되지 않은 쿼리 매개 변수를 제외하는 방법
module.exports = {
attributes: {
id: {
type: 'string',
unique: true
},
name: {
type: 'string'
},
displayName: {
type: 'string'
},
...
};
내가 정의 ProjectController.js
이 청사진은 GET /project
에서 나를 위해 경로를 설정합니다 가지고 있기 때문에. 이 URL에 요청하면이 모델에 대해 필터링되지 않은 결과가 모두 표시됩니다. limit
, sort
등 GET /project?limit=5
과 같이 사용할 수있는 매개 변수도 있으며, 아직 내 결과가 5 개 이상 있다고 가정합니다.
limit
과 같이 API 용으로 예약되지 않은 쿼리 매개 변수를 제공 할 때 문제가 발생합니다. 이제이 매개 변수를 필터 조건 (GET /project?foo
)으로 사용하므로 결과가 없습니다.
내 모델은 sails.config.models.schema = true
으로 설정되므로 attributes
에 정의 된 필드 만 채워져 정크 정보는 저장되지 않습니다. 모델이 스키마를 따르도록 지정한 방법을 보면서, 속성으로 정의되지 않은 필터 조건도 무시하는 것이 이상적입니다. 기본적으로 GET /project?foo
은 foo
이 유효한 속성이 아니므로 모든 결과를 반환해야합니다.
주된 이유는 각 요청과 함께 캐시 버스터 매개 변수가 전송되므로 Sails가이를 필터 매개 변수로 해석하여 결과를 왜곡한다는 것입니다.
생각하십니까?
일반 사항이거나 모델 지정 가능해야합니까? –