2012-11-01 2 views
17

가벼운 JavaScript 클라이언트에서 REST API를 래핑하는 데 가장 적합한 스타일을 찾고 있습니다.JavaScript에서 REST API 클라이언트 라이브러리의 좋은 예는 무엇입니까

var request = new SearchRequest(apikey); 
request.query = "search term"; 
request.send(function(results) { 
    console.log(results); 
}); 

또는 그와 같은 더 명시 적으로 HTTP를 포용 : 과거

내가 좋아하는 스타일로 구현 된 라이브러리를 본 적이

api.get("search", "search term", function(results) { 
    console.log(results); 
}); 
api.post("comment", comment, function(results) { 
    console.log(results); 
}); 

또는 더 높은 수준에서 그 랩 :

api.search("search term", function(results) { 
    console.log(results); 
}); 
api.createComment(comment, function(results) { 
    console.log(results); 
}); 

무슨 소용 REST API를 가지고 포장 현대 자바 스크립트 클라이언트 라이브러리의 예 너 최근에 본거야. 구현 세부 사항, API 설계에만 신경 쓰지 않아도됩니다.

감사합니다.

+2

개인적으로 나는 세 번째 (상위 레벨 추상화) 예제의 팬입니다. SDK와 비슷하게 느껴지고 경량 래퍼처럼 느껴지지 않습니다. –

답변

10

저는 좋은 API 디자인에 관한 정말 좋은 동영상을 보았습니다. 확실히 가치있는 시계. 인터페이스 공예 개발자 사랑 래퍼에 대해서 http://bit.ly/M28lOu

로 이동하여 위의 비디오 외에도는 생각 가치가있을 수 있습니다 -

RESTful API Design - Second Edition

또한 무료로 책 웹 API 디자인을 얻을 수 있습니다 다음 :

  1. 래퍼를 일관되게 만듭니다.

래퍼를 사용하는 사람들에게 가능한 한 자연스러운 느낌을주기 위해 작업중인 프로그래밍 언어 또는 커뮤니티의 표준, 명명 규칙 등을 채택하십시오.

  1. 줄 바꾸기 또는 추상화 하시겠습니까? 그것은 질문입니다. 당신은 가능한 한 REST API 메소드 및 구조를 모방 단순히 하드 것을 쉽게들을 수 있도록 포장 으로

. 이 방식의 가장 큰 장점 중 하나는 대상 REST API가 업그레이드 될 때 업그레이드가 더 쉬워진다는 점입니다. 대상 REST API는 복잡하거나 작동 및 표준이 아닌 방법으로 찾을 때

을 추상화하는 것이 유용합니다. 이 경우 랩퍼 메소드 및 호출은 목표 REST API 메소드와 전혀 유사하지 않을 수 있지만 궁극적으로 랩퍼를 사용하는 사람들의 생활을 단순화합니다.

3

확인이들 :

(Restangular 같은,하지만 각도없이)

  • Resful.js
  • JavaScript REST client Library

    +0

    초소형 버전 20kb, Restful 소형 버전 78kb. 내 생각에 너무 많은 휴식을. – Seigiard

    +1

    restful.js는 immutable.js에 의존합니다. immutable.js는 축소 된 평온한 소스의 50kb 이상을 차지합니다. 이미 ReactJs/Redux 프로젝트에서 일반적으로 사용되는 immutable.js를 응용 프로그램에서 사용하고 webpack을 사용하여 빌드하면 immutable.js가 한 번만 추가됩니다. 따라서 안락한 크기는 Restangular와 매우 비슷합니다. –

    +1

    또한 Angular를 사용하는 경우 Restangular를 사용해야합니다. Restful.js는 Angular를 사용하지 않는 응용 프로그램에 더 적합합니다. 이 경우 Anguler 소스 (예 : $ http)의 일부가 어떻게 든 안정된 핵심으로 이식되어야합니다. –

    관련 문제