0

REST API へのポスト リクエストを作成するために解析する必要がある大きな CSV ファイルがあります。ポスト リクエストの本文は json 文字列です。ファイルの最初の行にはキーがあり、次の行は値です。

ファーストネーム,ラストネーム
John,Doe
Mark,Twain

したがって、投稿の本文は {"FirstName":"John", "LastName":"Doe"}のようになります。

このファイルは、開発者向けのテスト データを作成するために使用されます。開発者がアカウント番号を入力して [送信] をクリックできる簡単なページを提供します。目標は、このファイルを解析し、REST API サービスに対して POST 要求を行うことです。

リクエストが来るたびにファイルを読み取るのを避けたいのですが、起動時にこれらのリクエストをキャッシュして、毎回ファイルを読み取ったり解析したりする手間を省きたいので、リクエストがリクエストボディに入るたびに、単にから取得する必要があります。キャッシュ。起動時にこれらの POST リクエストをキャッシュするのは正しい方法ですか?

また、さまざまなデータを保持するためだけに CSV ファイルを追加する必要がある場合もあります。これをスケーラブルにする方法は何でしょうか?

CSV ファイルの形式 (キー名) は同じになるため、各ファイルを同じ方法で解析できます。

4

2 に答える 2

0

これにはいくつかの方法があります。

Spring Framework または Java EE コンテナーを使用している場合は、PostConstruct上記の @AvinashSingh のスタイル ソリューションを使用できます。

サーブレット コンテナを使用している場合は、サーブレットのリスナーまたはその他の方法を使用してスタートアップ タスクを実行できます。

また、自分で実装することもできます。それを行う方法はたくさんあります。ガード変数を使用してcontactsリストがキャッシュされているかどうかを検出するように。または、Singleton Design Pattern のようなスキルを使用します。

于 2013-03-04T02:26:25.453 に答える
0

要件に基づいて N 個の方法で実装できます。簡単な例を次に示します。次のようなクラスを維持できます

class Contact{
  private String firstName;
  private String lastName;
}

そして、この値を保持する他のクラスで

class RestEnterpriseService{

  List<Contact> contacts;

  @PostConstruct
  init(){
    contacts = readFromJSON("JSON URL");
  }
}
于 2013-03-04T01:15:21.177 に答える