2013-10-03 3 views
1

웹 서비스를 다시 시작할 수있는 초보자로서 REST API에 대해 간단하게 묻고 싶습니다.REST/JSON API 만들기

@RequestMapping(value = "/JSON/ReceiveData/{metricOne}/{metricTwo}") 
public @ResponseBody 
String getData(@RequestParam("callback") String callback, @PathVariable String metricType, 
        @PathVariable String metricPeriod) { 

    LinkedHashMap<String,String> map = new LinkedHashMap<String, String>(); 
    try{ 
     map = service.getData(metricOne, metricTwo); 
    }catch(NullPointerException e){ 
     e.printStackTrace(); 
    } 

    return callback+"("+t2JsonUtil.toJsonString(map)+")"; 
} 

나는의 LinkedHashMap로 JSON 개체를 얻을 수 및 역 직렬화하기 위해 클라이언트 응용 프로그램에 대한 다음과 같은 방법을 만들었습니다 :

public LinkedHashMap getDataClient(String metricOne, String metricTwo) { 

    LinkedHashMap<String,String> map = null; 

    try { 

     URL url = new URL("http://localhost:8081/Metrics/Stats/JSON/ReceiveData/"+metricOne+"/"+metricTwo+"/?callback="); 
     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setRequestMethod("GET"); 
     conn.setRequestProperty("Accept", "application/json"); 

     BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); 

     String output = br.readLine(); 
     output = output.substring(1,output.length()-1); 
     JsonFactory factory = new JsonFactory(); 
     ObjectMapper mapper = new ObjectMapper(factory); 
     TypeReference<LinkedHashMap<String,String>> typeRef= new TypeReference<LinkedHashMap<String,String>>() {}; 
     map = mapper.readValue(output, typeRef); 

     conn.disconnect(); 

    } catch (MalformedURLException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    return map; 

} 
을 나는 다음과 같은 방법으로 REST를 통해 데이터를 제공하는 Java 응용 프로그램을 만들었습니다

이 서비스를 다른 언어의 응용 프로그램에 제공하기 위해 API를 만들려면 어떻게해야합니까? getDataClient에 포함 된 URL을 제공하면됩니까? 나 엄청 혼란스러워. 나는 누군가가 나에게 이것에 대한 설명 (또는 작은 예)을 줄 수 있다면 매우 감사 할 것이다. 감사!

답변

3

다른 언어로 된 응용 프로그램에이 서비스를 제공하기 위해 API를 만들고 싶다면 어떻게해야합니까?

웹 서비스의 주요 목적 중 하나는 이기종 (다른 tehnologies) 시스템 간의 통신을 허용하는 것입니다. REST 서비스는 HTTP 프로토콜을 기반으로하므로 HTTP 통신을 지원하는 모든 클라이언트 기술은 REST 서비스를 사용할 수 있습니다.

getDataClient?

URL은 각 엔티티를 식별하는 데 사용되지만 입력 매개 변수 세부 정보, 필수 헤더 등의 기타 정보를 제공해야 할 수도 있습니다. 고객이 쉽고 원활하게 서비스를 이용할 수 있도록 작은 사양 또는 REST API 사용 설명서를 작성하는 것이 좋습니다.