2012-03-14 5 views
13

저는 Backbone.js 라이브러리가 완전히 새롭다는 것과 전체 문서를 읽고 라이브러리 작업을 이해하고 있습니다. 아래의 경우에는 백본을 사용하여 설계된 응용 프로그램의 올바른 작동을 위해 서버에서 응답해야합니다 (추가 획/코드를 넣지 않고). backbonejs 시작하기 - 서버가 무엇을 반환해야합니까?

같은 모델을 가정해야 검증을 가정 서버 반환 model.save()

  • 잘 갔다 무엇 JSON

    window.person = Backbone.Model.extend({ 
        defaults: { 
         name: "", 
         email: "[email protected]" 
        }, 
        urlRoot: "PersonApp" 
    }); 
    
    1. 아래 무엇 JSON해야 model.fetch()

    2. 에 대한 서버 반환 무엇 JSON은에 대한 서버 반환해야합니다. 당신이 Backbone.Sync documentation에서보고있는 경우

  • 답변

    15

    , 그것은 서버에 변경된 속성을 가진 요청에 응답해야한다고 말한다.

    그래서 귀하의 질문에 대답 :

    1. model.save에 대한 JSON 요청은 저장의 일환으로 변경된 속성을 반환해야합니다. 생성의 경우 이것은 전체 모델이됩니다. 변경된 필드 만 업데이트하십시오. (또는 게으르다가 전체 클라이언트 측 모델을 업데이트하는 데 신경 쓰지 않는다면 전체 모델을 반환 할 수 있습니다).

      그래서 허용 응답은 { 'name' : 'a name', 'email' : '[email protected]' }

    2. 그냥 JSON 형태의 모델을 반환해야합니다 가져 오기 될 것입니다. 그래서 model.save에 사용했던 동일한 예제가 작동합니다.

    3. 완전히 확실하지 않지만, 백본이 삭제 요청에서 반환 된 데이터의 유효성을 검사하여 HTTP 오류가 아닌 한 아무것도 반환 할 수 있어야한다고 생각하지 않습니다. 아래 @a.real.human.being에 따르면 빈 응답은 또한 오류를 유발합니다. 그러므로 몸에 "OK"라고 표시 한 200 개를 반환하는 것은 합리적인 계획처럼 보입니다.

    +4

    'destroy'의 JSON 응답은 중요하지 않습니다. 백본은 성공을 위해 20 배 응답을 수신합니다. – abraham

    +0

    @abraham 그렇습니다. 백본은 HTTP 상태 200을 OK로 사용하므로 HTTP 상태를 반환하는 모든 요청은 백본에 대한 요청이 성공했음을 의미했습니다. – Deeptechtons

    +3

    @abraham 그렇지 않습니다. 'destroy '에 대해 JSON 응답을 보내지 않으면 모델에'error '가 생성됩니다. 그러나 아무것도 보내지 않으면 (심지어''json_encode ("생일 축하합니다")), 성공으로 취급합니다. –