2016-08-26 3 views
0

브라우저에 EmberJS 테스트 서버를 구축하려고합니다. "myApiMethod"에 대한 API 호출이 있는데 JSON 객체를 얻으려고합니다. 특정 메서드에서 응답을 테스트하는 동안 원시 json 개체를 반환하거나 Mirage.Response 개체로 래핑 할 수 있음을 알았습니다. 모의 서버의 응답이 실제 세계를 반영하기를 원했기 때문에 어느 것이 더 나은 아이디어인지 확실하지 않았습니다.Mirage.Response 객체를 반환하는 것과 Mirage를 통해 원시 JSON 객체를 반환하는 것의 차이점은 무엇입니까?

버전 1 : 내가 알고 싶어 무엇

내가 내 미라지의 config.js에있는 다음과 같은 두 개의 코드 덩어리 사이의 기능적 차이였다

this.get('/myApiMethod', function(param1, param2){ 
     var jsonObject = myFunctionThatReturnsJson(param1, param2); 
     return jsonObject; 
    }); 

버전 2 :

this.get('/myApiMethod',function(param1, param2){ 
     var jsonObject = myFunctionThatReturnsJson(param1, param2); 
     return Mirage.Response(200, {}, jsonObject); 
    }); 

답변

1

미라지는 XHR 응답을 위조하기 위해 후드 아래 Pretender.js을 사용합니다. Pretender 자체는 응답 유형에 대해 익숙하지 않으므로 JSON으로 응답 할 때 수동으로 문자열을 지정해야합니다. 여기에 문서에서 예제 : 미라지의 원래 결정

this.get('/photos/:id', function(request) { 
    return [200, {"Content-Type": "application/json"}, JSON.stringify(PHOTOS[request.params.id])] 
}); 

한 것은 그 가정했다, 대부분의 시간은, 사람들은 JSON으로 응답하고자합니다.

this.get('/photos/:id',() => { 
    return [{ id: 1, url: 'lorempixel.com/100/100' }]; 
}); 

와 미라지는 응답을 stringifying하고 적절한 ContentType 머리글 설정을 담당 : 그래서, 미라지의 경로 처리기는 일반 자바 스크립트 객체를 반환 할 수 있습니다.

다른 콘텐츠 형식으로 응답하거나, 머리글을 변경하거나, 지정된 동사의 기본값 이외의 다른 HTTP 응답 코드를 사용하여 응답을 사용자 지정하려는 사람들을 위해 개체가 추가되었습니다.

기본적으로 기본 동작 이외의 것이 필요한 경우 Mirage.Response을 사용하십시오.

+0

대단히 감사합니다. –

관련 문제