2010-11-20 10 views
9

Django에서 장고 프로젝트를 "다시 시작"하시겠습니까?Django 프로젝트/앱을위한 RESTful API

:

는 그 작업을 수행하는 세 가지 옵션이 정말 존재한다는 결론에 도달했다

나를 위해이 일을하는 올바른 방법은 모든 것을 시도하고 나에게 가장 적합한 것을 고르는 것이고, 그러면서 나는 당신의 말을 듣고 싶습니다. ...

감사합니다.

답변

7

나는 장고 피스톤에 대해 가장 잘 알고 있으므로 자연스럽게 그 방향으로 나아갈 것입니다.

다른 두 사람을 잠시 살펴보면 django-rest-interface는 모델을 리소스로 사용하는 것 외에는 아무 것도하지 않으며 django-restful-resources는 일부 사람이 일회용으로 시도한다는 것을 나타냅니다.

피스톤은 정확히 bitbucket.org의 자체 사이트 개발에서 비롯되었으며 많은 유연성을 제공합니다. 모델 인스턴스뿐만 아니라 리소스의 액세스 방법에 관계없이 거의 모든 개체를 반환 할 수 있습니다. 인코딩 됨. 또한 폼 유효성 검사 (어쨌든 올바르게 작동시킬 수있는 경우)와 같은 여러 가지 유용한 기능을 기본적으로 지원하며 제한 기능을 요청합니다.

+0

답장을 보내 주셔서 감사합니다. – Ali

3

장고 - 안정 리소스를 쓴 "어떤 사람"으로서 나는 그것이 왜 존재하는지 분명히하고 싶습니다. 모델을 리소스로 노출시키려는 것이 아니라 단일 URL을 HTTP 동사 당 하나씩 다양한 처리기 메서드에 매핑 할 수있는 방법입니다. 그게 다야. 모델 객체를 노출하는 데 사용할 수 있지만 리소스 또는 단일 URL 및 HTTP 동사를 통해 상호 작용하려는 다른 것으로 서비스를 표시하는 데 사용할 수도 있습니다. 보다 완벽한 기능의 솔루션을 찾으려면 꼭 피스톤을 이용하십시오.

+0

안녕하세요 톰, 시간을내어이 질문에 답해 주셔서 감사합니다. HTTP 동사에 대해 나에게 가르쳐 주시겠습니까? 감사. – Ali

+2

안녕하세요, HTTP 동사 (또는 HTTP 메소드)는 GET, POST, PUT, HEAD, DELETE, OPTIONS 및 TRACE입니다. RESTful 웹 서비스를 작성하는 데 사용하는 방법에 대한 설명은 - http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html - http : // www. amazon.com/REST-Practice-Hypermedia-Systems-Architecture/dp/0596805829 - http://watchitlater.com/blog/2009/11/http-method-primer-for-restful-web-services/ (뻔뻔한 플러그) – Tom

2

eternicode에서 언급 한대로 django-piston이 우수합니다. 그것은 성숙하고 잘 특색 지어져 있으며 좋은 커뮤니티가 있습니다. 지금은 많은 개발이 부족한 것처럼 보이지만 커뮤니티가 주도하는 포크에 대한 이야기가 있기는하지만 변경 될 수 있습니다.

django-tastypie 또한보기 좋을 가치가 있으며 현재 그 뒤에 많은 자극이있는 것으로 보입니다.

방금 ​​고려해 볼만한 다른 옵션도 출시했습니다 : django-rest-framework. API auto-documentation과 같은 멋진 기능이 두 가지 있습니다.

saverio에서 언급 한대로 Django 1.3의 클래스 기반 뷰를 사용합니다. 즉, 프레임 워크를 완전히 사용하지 않고도 제공하는 MixIn 클래스 중 일부만 삭제할 수 있습니다. (예 : adding HTTP content negotiation for serializing output to multiple types)

5

django 1.3의 새로운 클래스 기반 제네릭 뷰를 사용하면 사용자 정의 직렬 및 디시리얼라이저를 사용하여 자신의 나머지 인터페이스를 구현하는 것이 매우 쉬우 며 주식 코드만으로 거의 완벽한 피스톤의 구현을 복제 할 수 있습니다. 일반적인 RESTful 리소스 클래스 및 하위 리소스, 연관에 대한 자연 키 지원, json 및 XML 직렬화 등을 사용하여 500 줄의 코드에서 View (1.3) 기반의 나머지 모듈을 만들었습니다.모듈은 내 앱의 요구 사항에 맞게 조정됩니다.

피스톤 코드의 몇 가지 제한 사항을 극복하기 위해 (예 : .get (...)을 사용하여 처리기를 호출하기 전에 쿼리 세트가 수정 된 것처럼 (예 : .values ​​...)) 또는 직렬화에서 모델의 메서드를 사용할 수없는 경우.

필요에 따라 작업을 수행하면 며칠 이내에 완전히 이해하고 통제 할 수있는 일련의 수업 및 믹스 닝을 받게됩니다.

+0

http://github.com/rewritten에서 내 자신의 안락한 경치를 시험해 볼 수 있습니다. 그것은 철저히 테스트되지 않았으며 더 많은 눈을 뜰 수 있습니다. – rewritten

관련 문제