최근에 AngularJS가 제공하는 양방향 바인딩을보다 잘 수용하기 위해 API를 구조화하는 방법에 관해 많은 중간 개발자들과 이야기를 나누었습니다. 우리는 API가 정의에 따라 매우 명확해야할지 여부를 결정하려고 시도해 왔지만, Angular에서는 더 잘 작동하지만 중간 계층에는 조금 더 많은 작업이 필요하거나 더 암시 적이거나 Angular에서 "massage" 좋은 각도 모델로 데이터.AngularJS 응용 프로그램을 빌드하기위한 적절한 API 아키텍처
예제를 시작하십시오. 우리가 일종의 데이터 백업 서비스에 대해 이야기하고 있다고 가정 해보십시오. 이 서비스를 통해 데이터를 백업하고 X 년 또는 무한정 데이터를 보존 할 수 있습니다. UI에는이 논리를 제어하는 2 개의 요소가 있습니다. <select>
을 사용하면 X 년 동안 "Never"또는 "After"데이터를 삭제할지 여부를 선택할 수 있습니다. "Never"를 선택하면 년 입력을 숨기지 만, "After"를 선택하면 연도 입력을 표시하고 1-99 사이의 숫자를 입력 할 수 있습니다.
여기서는 $scope
모델에서 각각 다른 속성을 제어하는 2 개의 요소 컨트롤을 소개했습니다.
그러나 API에서 내 중간 계층 사람은 "YearsRetention"이라는 단일 속성을 사용하여이 모든 것을 제어하려고합니다. YearsRetention == 0
이면 "내재적으로"는 무제한 보존을 원하지만,> 0으로 설정하면 보존이 해당 값으로 설정됩니다.
기본적으로 그는이 단일 값을 사용하여 보존 설정을 제어하려고하므로 UI에서 동일한 효과를 얻기 위해 $ 범위의 값을 설정하기 위해 일종의 변환 함수를 작성해야합니다. 이 변환은 들어오는 데이터와 나가는 데이터 모두에서 발생해야합니다.
결국 API를 암시 적으로 정의해야하는지 (API가 단일 값을 보내고 Angular가 데이터를 사용 가능한 뷰 모델로 변환해야 함) 또는 명시 적으로 API가 (API가 직접 바인딩하는 데 필요한 모든 값을 전송하는지) 알고 싶습니다. UI로 변환하여 JSON을 변환 할 필요성을 줄여야합니까?)
죄송합니다. 내 질문을 요약하기가 어렵습니다. 간결한 방식으로 필요한 경우 다시 반복 할 수 있습니다. –