2017-12-28 6 views
0

주로 두 가지 질문이 있습니다. 나는 이것을 어디에서라도 읽지는 않았지만, 프로젝트의 모든 응용 프로그램에서 들어오고 나가는 모든 데이터가 REST API 호출에만 의존 할 수 있도록하는 것이 좋은지 아닌지 궁금합니다.Django - REST API 만있는 프로젝트 앱 연결

예를 들어, 새 사용자를 등록하려는 경우. 프론트 엔드에서 백엔드 작업없이 데이터를 수집하고이 데이터를 REST 호출로 전송하여 모든 유효성 검증 및 백엔드 작업이 수행되는 "registration-app"로 보내십시오.

큰 팀에서 작업 할 때이 방법이 효과적이라는 것을 알았습니다. 종속성을 더욱 효과적으로 없애고 프로젝트의 각 부분을 더 명확하고 "명확하게"만들 수 있습니다. 그러므로 제 질문은 이것을 실행 가능한 방법으로 생각합니까? 이 보안 또는 성능 문제가 있습니까? 그리고 더 읽을 수있는 곳은 어디입니까?

감사

최대

답변

1

그것은, 나는 그것이 장점과 단점을 가지고 대부분의 선택처럼 완벽하게 가능한 생각된다. 당신은 디자인, 기능의 선명도를 얻을 클라이언트는 추상화에 따라 (즉, REST API)를 오히려 결석 (예 : 웹 사이트)에 비해, 그래서 -

  • 디커플링 :

    장점 : 여기에 그들 중 일부입니다 브라우저 외부에서 테스트하고 REST API를 다른 구현으로 대체하는 등의 작업을 수행 할 수있다. 개발/테스트 목적으로 모의 서비스를 제공합니다. 또한 REST API가 별도의 백엔드 서비스로 구현 된 경우 독립적으로 업데이트하고 독립적으로 확장 할 수 있습니다.

  • 반응 형 사용자 인터페이스 - REST 요청은 HTML 페이지를 다시로드하지 않고 UX를 향상시킬 수 있습니다. 또한 비동기 REST 호출을 만들 수 있습니다.
  • 페이로드 감소 - 일반적으로 REST 호출은 페이지 새로 고침에서 전송 된 HTML보다 적은 데이터를 반환합니다.

단점 :

  • 더 복잡한 클라이언트 - 당신은 더 복잡한 자바 스크립트 당신이 사용 특히, 그래서 만약 비동기 REST 호출을 필요로한다.
  • 동적 페이지 제작 - 일반적으로 REST 호출의 결과는 UI에서 약간의 변경이 필요할 수 있습니다. 자바 스크립트에서이를 동적으로 수행해야하므로 복잡성이 추가됩니다. 따라서 UI 로직은 HTML 페이지 템플릿과 자바 스크립트 UI 업데이트로 나뉘어져 있습니다. 이로 인해 UI가 추론하기가 어렵습니다.
  • 제한 시간 - 자바 스크립트에서 시간 초과 및 오류를 처리해야합니다.
  • 세션 - 사용자를 인증하고 세션을 유지할 수있는 방법이 필요합니다. REST 서비스는 클라이언트 세션 상태를 스스로 유지 관리해서는 안되므로 클라이언트에 상태를 저장하거나 자체 고유 URI가있는 새 REST 자원으로 명시 적으로 상태를 추가해야한다.
  • 강제 페이지 다시로드 -이 메커니즘을 사용하여 페이지 다시로드를 피할 경우 사용자는 상당 기간 페이지를 열어 놓을 수 있으며 페이지를 다시로드 할 수있는 메커니즘이 필요할 수 있습니다.
+0

답장을 보내 주셔서 감사합니다. 그것은 꽤 좋은 것 같아요, 유일한 주요 죄수는 더 복잡합니다. 그러나 나는 완전히 강제로 페이지를 다시로드 할 수있는 부분을 이해하지 못한다. – Alien13