2014-10-22 2 views
2

필터링 된 데이터를 REST API에서 다시 가져 오기 위해 몇 가지 방법을 시도했지만 쿼리에 올바른 형식을 지정할 수 없습니다. 나를 위해이 작품 :Parse.com REST API 쿼리 형식 (각도 포함/제한/개수 포함)

var query = encodeURIComponent('where=' + '{"' + type + '":"' + subtype + '"}'); 

     $http.get('https://api.parse.com/1/classes/events?' + query, 
      {headers:{ 
       'X-Parse-Application-Id': PARSE_CREDENTIALS.APP_ID, 
       'X-Parse-REST-API-Key':PARSE_CREDENTIALS.REST_API_KEY, 
       'Content-Type' : 'application/json' 
      } 
      }) 
    }, 

그러나 그러한 '제한', 나는 많은 반복을 시도 '횟수', '포함'으로하지만 아무 소용이 추가 매개 변수를 포함 할 때. 대부분의 queires 그러나이 쿼리는 빈 배열을 반환, 잘못된 응답을 반환 (내가 좋아하는 것이 무엇하지 않은,하지만 최소한 뭔가 반환) :

var query = encodeURIComponent('where=' + '{"' + type + '":"' + subtype + '", "limit":2}') 

나는 또한 각도의 $와 PARAMS 객체를 사용하여 시도를 http 개체가 있지만 위의 쿼리와 동일한 서식을 사용하더라도 잘못된 응답을 반환합니다. 아무도 나에게 이것에 대한 올바른 형식을 줄 수 있습니까? 예를 들어 작동하지 않는 것 같습니다 :

$http.get('https://api.parse.com/1/classes/events', 
        {params: {"where" : encodeURIComponent('{"senses":"touch"}') }}, 
        {headers:{ 
         'X-Parse-Application-Id': PARSE_CREDENTIALS.APP_ID, 
         'X-Parse-REST-API-Key':PARSE_CREDENTIALS.REST_API_KEY, 
         'Content-Type' : 'application/json' 
        } 
        }) 

고마워요!

+0

왜 Parse.com [자바 스크립트 API]를 사용하지 않는 (https://parse.com/docs/js_guide)? –

+0

플랫폼에 의존하지 않으려는 시도 - Javascript API를 사용하는 것이 내가 생각한 마지막 수단 일 것입니다. –

+0

어쨌든 컨트롤러에서 이러한 모든 $ http 호출을 추상화하는 서비스를 만들어야합니다. 그것은 또한 그것을 "플랫폼 불가지론 자"로 만들 것입니다. –

답변

1

인코딩에 관한 많은 문제가 많이 발생하고 이미 해결 된 이점이 있기 때문에 "지나치다"고 생각합니다. 따라서 문자열 형식 지정/인코딩을 $http으로 수행 할 필요가 없습니다. 객체 만 사용하십시오. 하지 어린이 -

또한, 확인 후 parse.com API, limit, countincludewhere의 형제 자매입니다.

그래서, 당신이 할 필요가있다 :

var whereQuery = {type: subtype}; 

$http.get('https://api.parse.com/1/classes/events', 
    { 
    headers: { 
       'X-Parse-Application-Id': PARSE_CREDENTIALS.APP_ID, 
       'X-Parse-REST-API-Key': PARSE_CREDENTIALS.REST_API_KEY, 
       'Content-Type' : 'application/json' 
       }, 
    params: { 
       where: whereQuery, 
       limit: 2, 
       // count: 1 
       // include: "something" 
       } 
    }); 
+0

답변을 주셔서 감사합니다. - 대단히 감사합니다. 불행히도 여전히 저에게는 효과가 없습니다. { '의 X-구문 분석 - 응용 프로그램-ID': PARSE_CREDENTIALS '$ http.get ('https://api.parse.com/1/classes/events', \t \t { \t \t 헤더를 반환 .APP_ID, '의 X--REST-API-키를 구문 분석'PARSE_CREDENTIALS.REST_API_KEY, \t '콘텐츠 유형': '응용 프로그램/JSON' }, PARAMS : {여기서 {감각 : "터치", 제한 : 2}} } 은 빈 배열을 반환합니다. 오브젝트에서 limit : 2를 제거하면 작동하여 모든 오브젝트를 리턴합니다. 어떤 아이디어? –

+0

'limit'은'where'의 일부가 아니어야한다고 생각합니다.하지만 그 질문과 대답의 범위를 벗어납니다. –

+0

where 문에 넣는 것이 의미가 없다는 것에 동의합니다 - 다른 매개 변수를 사용하여 where 문을 가질 수 있도록 형식을 지정하는 방법을 찾으려고합니다. 앰퍼샌드, 여러 개체 등을 사용합니까? –

관련 문제