2012-06-17 4 views
3

우리는 상당히 JS가 무거운 내부 생산성 앱을 개발하려고합니다 (드롭 다운으로 바뀌는 편집 가능한 입력란, 현재 페이지의 섹션 추가 및 삭제 등). 그리고 별도의 로컬 데이터베이스 대신 기존 JSON REST API를 사용합니다.REST API 기반 backbone.js 앱의 백엔드 아키텍처는 무엇입니까?

과거 Rails + jQuery를 사용하여 동적 페이지를 만드는 데 경험이 있었기 때문에 backbone.js가 더 적합한 도구로 보입니다. 질문 : 백엔드를 구성하는 좋은 방법은 무엇입니까? 레일즈는 ActiveRecord 데이터베이스 모델을 사용하지 않으므로 불필요한 복잡성을 초래할 것으로 보입니다. 내 머리 꼭대기에서 Sinatra, Node.js 또는 일반 HTML을 사용하는 것이 좋습니다. 추가 고려 사항은 다음과 같습니다.

  • 이것은 단일 페이지 응용 프로그램이 아닙니다. 최소한 3 가지 "해시가 아닌"URL 섹션이 있으므로 라우팅 엔진이 도움이됩니다.
  • 우리는 Ruby 샵이므로 루비 기반으로 유지하기가 쉽습니다.
  • 이 응용 프로그램은 서버에 동적으로 데이터를 거의 또는 전혀 저장하지 않는다는 점에서 고유합니다. 데이터를 다시 보낸 후 페이지를 다시로드해도 문제가 없습니다. 그러나 앞서 언급했듯이 그 전에는 많은 클라이언트 측 조작이있을 것입니다.

답변

1

Backbone.js는 매우 유연합니다. 하드 와이어드가별로 없습니다. 즉, 기본적으로 JSON으로 포맷 된 모델을 반환하는 백엔드 서비스를 찾습니다.

{ "foo": "bar" } 

을 아니면 수집을 위해 : 당신이 속성 foo는있는 모델이있는 경우 그래서, 당신의 서비스는이 반환해야 함을 넘어

[ { "foo": "bar1" }, { "foo": "bar2" } ] 

, 당신은 URL의 모습을 지정할 수 있습니다 각 모델 유형에 대해 urlRoot 속성을 정의하면 url 함수는 URL을 가진 모델을 가져 오는 URL을 반환합니다. urlRoot 및 모델의 cid (클라이언트 ID).

요약하면 JSON을 사용할 수있는 표준 REST API를 구현하면 괜찮을 것입니다.

+0

기본적으로 backbone.js를 일반 HTML과 기본 웹 프레임 워크없이 사용하도록 권장하고 있습니까? – Suan

4

문제는 순수 API 엔진으로 백엔드를 빌드하는 것입니다. 그런 다음 클라이언트 시스템에서 계획중인 MVC 스택을 사용하십시오.

Daniel Doubrovkine은 Art.sy의 CTO입니다. 그는 Grape을 사용하여 랙을 타고갑니다.

포도는 랙에 API를 작성하는 DSL입니다. In은 테스트 가능성을 포함하고 여러 버전, 인증, 액세스 제어 및 문서화 문제를 처리합니다.

presentation 이것에 대해. 그의 최신 버전 인 포도에 관한 그의 blog post.

+0

나는 나의 질문이 매우 명확하지 않다는 것을 알았다 :) REST API는 이미 존재하며이 앱과 분리 될 것이다. 내 질문은 _this_ app에 대한 백본 아래에서 무엇을 사용해야하는지, REST API에 권한을 부여하는 앱이 아니라는 것입니다. – Suan

0

Ruby 전문 지식을 보유하고 있다고 말하면 Sinatra을 살펴 보시기 바랍니다. 특히 Ruby 개발자에게 REST 백엔드를 만드는 가장 쉬운 방법입니다.

0

나는 성공적으로 이것을 보았다. with Middleman.

기본적으로 중개인은 정적 자산을 컴파일 한 다음 CDN 또는 기본 웹 서버 (예 : Apache 또는 Nginx)로 보낼 수 있습니다. 당신이 필요로하는 3 개의 다른 페이지는 Middleman이 3 개의 개별 HTML 파일을 생성하도록 처리됩니다.