2016-06-01 2 views
0

나와 내 동료는 서로 다른 두 개의 API 끝 점이있는 응용 프로그램을 작성하고 있습니다. 불행히도 때로는 두 끝점 모두에 대한 여러 요청을 수행하고 대답을 하나의 큰 데이터 구조로 정리해야합니다.저장소에 새 메서드를 만드시겠습니까?

지금까지 우리는 ApplicationAdapter에서 query-method를 재정 의하여이를 수행했지만 단 한 번의 요청 만하기 때문에이 문제가 발생했습니다. 어댑터에서

this.get('store').multipleQuery(somemodel, params); 

하는을 만드는 :

this.get('store').query(somemodel, params); 

우리가 할 수 있도록하려면 :

우리는 지금 가게에 새로운 메소드를 추가 그래서 대신 할 수 있도록하려면 새로운 방법은 간단히 추가 할 수 있기 때문에 쉽습니다. 그러나 저장소에서 새 메서드를 만드는 방법과 Adapter가 확장 클래스를 사용하는 방법을 확인하려면 어떻게해야합니까?

답변

2

글쎄, 가게는 무시하고 그것을 확장 할 수 있도록 단지 서비스 :

서비스/

import DS from 'ember-data'; 

export default DS.Store.extend({ 
    multipleQuery() {...} 
}); 

store.js하지만 당신은 이해해야한다, 어댑터는 사용하지 않습니다 상점에서 어댑터가 어댑터를 사용 중입니다.

또한 개인 API를 사용해야한다는 사실을 알기 시작합니다. 나는 상점이 어떻게 작동하는지에 관해 알기 위해 read the code가 될 것이다.

하지만 어댑터를 사용해야한다고 생각합니다. 왜 그냥 store.query('model', {multiple:true}) 같은 것을하지 않습니까?

+0

답변 주셔서 감사합니다. 이것은 정확히 우리가 실현 한 것입니다. 우리는 개인 api에 몇 가지 문제가 있었고, 시간이 지남에 따라 변경해야하기 때문에 어댑터 만 사용하고 추가 옵션을 제공 할 것입니다. – Ms01

관련 문제