2010-02-13 2 views
5

웹 서비스에 대한 일부 정보를 검색하면 엔터프라이즈 급 애플리케이션처럼 보입니다. 나는 RESTful 디자인이 이것에 대한 아주 멋진 아이디어라는 것을 알았다. 나는 아파치 CXF가 멋지게 보인다는 것을 알게되었다. RESTful 디자인과 자바를 지원한다. Apache CXF를 사용하여 초보자가 응용 프로그램을 작성하기에 좋은 선택입니까? 또는 다른 프레임 워크가 제안 되었습니까?RESTful Java 웹 서비스 프레임 워크에 대한 제안 ...

답변

4

IMHO는 REST가 어떻게 수행되어야 하는지를 알려주는 가장 중립적 인 프레임 워크이므로 JAX-RS를 사용하는 것이 좋습니다. CXF는 사용하지 않았습니다. 저지 만 사용하십시오. 매우 견고한 구현이며 좋은 클라이언트 측 커넥터도 함께 제공됩니다 (클라이언트 측은 아직 JAX-RS의 일부가 아닙니다).

특정 방식 (예 : 하이퍼 미디어 디자인)에 접근하는 데 '인정 된'최상의 방법이 아직 없기 때문에 'REST 수행 방법'과 관련하여 중립적 인 것이 중요합니다.

축하연은 REST 방식으로 진행됩니다. 후회하지 않을 것입니다.

2

초보자를위한 훨씬 간단한 구현은 봄 3.0 REST 지원입니다. Spring MVC 3.0은 REST를 지원하며 Apache CXF에 비해 훨씬 간단하다. 자바의 또 다른 RESTful 웹 프레임 워크

+0

@spa 웹 서비스는 Roo입니까? –

+0

와우 ... 다음 번에 더 나은 질문을 읽으십시오. 단어 웹 서비스를 놓쳤습니다. RESTful 아키텍처 스타일에 대한 생각. – spa

+0

@spa 당신이 말하는 것에 대해 정교하게 설명해 주시겠습니까? –

1

으로 Restlet : 나는 Jersey 가고 싶어 http://www.restlet.org/

+0

Apache CXF와 Spring처럼 유명하지는 않지만 Restlet에는 특별한 기능이 있습니까? – DNB5brims

+0

Restlet에서 제공하는 기능 목록을 사용할 수 있습니다. http://www.restlet.org/about/features Apache CXF 및 Spring MVC는 매우 좋은 프로젝트입니다. 그러나 Restlet과 달리 REST 애플리케이션에만 집중하지는 않습니다. – Desintegr

+0

Restlet은 JAX-RS보다 먼저 제공되기 때문에 자체 아키텍처를 가지고 있습니다. JAX-RS 1.0 통합을 추가 한 기능을 보았습니다. – TJR

8

, JAX-RS의 RI (JSR 311), RESTful 웹 서비스를위한 자바 API (즉, 표준).

1

나는 RESTEasy와 REST 시작 30 분에 일어나 얻을. 이 JBoss 자료를 모두 사용하지 않고도 여러분이 좋아하는 서블릿 컨테이너에서 독립형 lib로 사용할 수 있습니다.

1

PlayFramework를 사용해보십시오.

# ====== Order service ========================= 
GET /orders Orders.list 
GET /orders/{<[0-9]+>id} Orders.show 
PUT /orders/{<[0-9]+>id} Order.saveUpdate 
POST /orders Orders.saveNew 
# ============================================== 

그리고 해당 컨트롤러 방법 :

public class Orders extends Controller { 
    public static void list() { 
     List<Order> orders = Order.all(); 
     render(orders); 
    } 
    public static void show(long id) { 
     Order order = Order.findById(id); 
     notFoundIfNull(order); 
     render(order); 
    } 
    public static void saveUpdate(long id, Order update) { 
     Order order = Order.findById(id); 
     notFoundIfNull(order); 
     order.update(update); 
     show(id); 
    } 
    public static void saveNew(Order order) { 
     order.save(); 
     show(order.getId()); 
    } 
} 

일부 유틸리티 수 있습니다 그냥 RESTful 웹 응용 프로그램을 구현하는 플레이를 사용하는 것이 얼마나 쉬운 샘플 경로 파일에서 전리품을 가지고 당신은 알게 될 것이다 다른 웹 서비스와 상호 작용할 수 있습니다.

String url = "https://ajax.googleapis.com/ajax/services/search/web"; 
Map<String, Object> params = new HashMap<String, Object>(); 
params.put("v", "1.0"); 
params.put("q", searchStr); 
params.put("key", Play.configuration.get("app.google.key")); 
params.put("userip", myIpAddr); 
HttpResponse resp = WS.url(url).params(params).get(); 
return resp.getString(); 
관련 문제