2017-03-27 2 views
0

Java에서 응용 프로그램을 사용하면 데이터를 가져 오는 경우 중앙 부분에서 처리 논리 및 노드 수를 갖는 하나의 중앙 부분이 있습니다.특정 소비자 구조에 따라 REST API 개발 용

현재 중앙 파트와 노드 모두 자바에 있으며 중앙 부분에서 노드에서 데이터를 가져올 수 있도록 노드에서 구현해야하는 인터페이스 (데이터 가져 오기 방법 포함)가 있습니다.

이제 모든 언어로 개발할 수 있도록 노드 개발을 외부화하고 HTTP를 통해 데이터를 가져올 수 있습니다. 같은 REST API를 사용하려고 생각하고 있습니다. 내 노드는 나머지 API로 노출되고 중앙 부분은 REST API 호출을 사용하여 데이터를 가져옵니다.

내 질문은 여기입니다 - REST API를 개발할 때 강제 될 수있는 중앙 부분에서 요구하는대로 REST API의 구조를 정의 할 수 있습니까? 예를 들어, 노드의 java 클래스에 인터페이스를 구현할 때 지정된 매개 변수로 메소드 세트를 구현해야합니다. 나머지 API 및 매개 변수의 특정 구조를 갖도록 REST API 개발과 비슷한 방식으로 강제 할 수있는 메커니즘이 있습니까? 또는 REST 개발자에게 내보내고 REST API의 유효성을 검사 할 수있는 구조를 제공 할 수도 있습니다.

+0

1 년 전에 데이터가 각 노드에서 수집되는 비슷한 문제가있었습니다. 우리는 apache 절약과 사육사를 사용하여 그것을 해결했습니다. 그래서 나머지 호출 대신 RPC를 사용했습니다. –

답변

0

내가 아는 한, 인터페이스 방식과 달리 REST-API를 코딩하도록 다른 사람들에게 강요하는 언어 독립적 인 방법은 없다. 다른 사양을 따르고 테스트 케이스를 도출 할 수있는 멋진 사양이 필요합니다. 따라서 나머지 도구의 URL을 가져 와서 테스트하고 데이터를 가져오고 예상 한 것과 비교하여 유효성을 검사하고 결과가 포함 된 로그 파일을 만드는 작은 도구를 만드십시오. 그런 다음이 작은 도구를 다른 개발자에게 제공하여 테스트 할 수 있습니다.

별로 좋지는 않지만 아마도이 아이디어가 도움이 될 것입니다.

0

JSON 구조 (즉 POST 메소드의 본문)를 사용하는 REST 서비스를 빌드 할 수 있습니다. 자바 클라이언트를 빌드하려면이 JSON에 직렬화 할 수있는 POJO 모델을 사용하십시오. 예를 들어

: RequestBean이 예상 JSON으로 직렬화 속성 클래스, 그리고 당신은 REST 개발자에게 제공해야 하나입니다

HttpEntity<RequestBean> request = new HttpEntity<RequestBean>(requestBean, headers); 
RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory());   
ResponseBean response = restTemplate.postForObject(endpoint, request, ResponseBean.class); 

.

0

수많은 도구가 포함되어 있으며 클라이언트 클래스 생성에 국한되지 않는 생태계를 조사하는 이유는 무엇입니까?