1

私は REST Web サービスの初心者なので、REST API について簡単な質問をしたいと思います。次のメソッドを使用して、REST 経由でデータを提供する Java アプリケーションを作成しました。

@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)+")";
}

クライアント アプリケーションが JSON オブジェクトを取得して LinkedHashMap に逆シリアル化するために、次のメソッドを作成しました。

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;

}

このサービスをさまざまな言語のアプリケーションに提供するために API を作成したい場合、正確にはどうすればよいですか? getDataClient に含まれる URL を提供するだけですか? 私は非常に混乱しています。誰かがこれについて説明(または小さな例)を教えてくれれば、とても感謝しています。ありがとう!

4

1 に答える 1

3

このサービスをさまざまな言語のアプリケーションに提供するために API を作成したい場合、正確にはどうすればよいですか?

Web サービスの主な目的の 1 つは、異種 (異なる技術) システム間の通信を可能にすることです。REST サービスは HTTP プロトコルに基づいて構築されているため、HTTP 通信をサポートするすべてのクライアント テクノロジが REST サービスを利用できます。

getDataClient に含まれる URL を提供するだけですか?

URL は各エンティティを識別するためのものですが、入力パラメーターの詳細、必要なヘッダーなどの他の情報も提供する必要がある場合があります。クライアントがサービスを簡単かつシームレスに利用できるように、小さな仕様または REST API 使用ガイドを作成することをお勧めします。

于 2013-10-03T09:09:53.107 に答える