###前提・実現したいこと
シンプルにRestAPIを作成したのですが、JS(Ajax)からJavaを通して、API(Json)に対してリクエストを投げレスポンスを受け取るという。プロセスがまだJavaが不慣れで実現できません。どうかアドバイス(サンプルソースなど等)の程、お力をお借りしたいです。
requestである、no1とname1を投げ、レスポンスであるno2とname2とListを受け取り、再度no2とname2でno3とname3とListを受け取りたい。
###不明点
サービスクラスとヘルパークラスの実装
###ソース1
js
1function hoge() { 2 $.ajax({ 3 url:'/sarada', 4 type:'GET', 5 data:{ 6 'no':$('#no').val(), 7 'name':$('#name').val() 8 } 9 }) 10//以下は気にしないでください。 11 }).done(function(json) { 12 // ここら辺の記述は省きます 13 // render search result 14 // omitted 15 16 }).fail(function(xhr) { 17 // render error message 18 // omitted 19 20 }); 21 return false; 22}
###requestBeen
Java
1 2//importは省き 3 4public class SaradaParameters implements Serializable { 5 6 // omitted 7 8 private Integer no; 9 10 private String name; 11 12 13}
###responseDto
Java
1 2//importは省き 3 4public class ResponseDto implements Serializable { 5 //setter/getter用 6 7 private List<XxxEntity> list; 8 private String no; 9 private String name; 10 11} // 記述は適当です。
###コントローラー
//importは省き
java
1@RequestMapping(value = "search", method = RequestMethod.GET) 2@ResponseBody 3public SearchResult search(@Validated SaradaParameters sarada) { 4 5 ResponseDto responseDto = saradaService.hoge(hoge); 6 7 if 適当なエラーケースたち 8 9 // 以下もあまり気にしないでください。thymeleafでリストを展開して表示する 10 11 model.addAttribute("saradacodeList", responseDto.getResults()); 12 13 14 return searchResult; 15}
###ServiceClass
//importは省き
java
1// この箇所の記述から少し不明確な点が有り.. 2// 多分API呼び出しを行う場所だと思うが,,,,, 3 4@Service 5public class SaradaService { 6 7 @Autowired 8 RestTemplate restTemplate; 9 10 public ResponseDto service(String ? ) { 11 return restTemplate.getForObject(URL, ResponseDto.class, ?); 12 } 13 14}
###HelperClass
java
1 2//importは省き 3 4// この箇所の実装イメージが不明 5 6@Service 7public class Saradahelper { 8 9 @Autowired 10 RestTemplate restTemplate; 11 URL 12 // API用のURLの指定はアプリケーションプロパティで定義済み、返し方が不明点 13 14 } 15 16}
json
1// 以下のJsonは適当に値を入れてますが、一旦この形式として...この辺は別に作ってあるので大丈夫です。 2// 条件1はno="0"とname="name0"で取得可能 3// 条件2はno="1"とname="山田太郎"で取得可能 4// 条件3はno="2"とname="最上恵子"で取得可能 5 6 7{ 8 条件1:{ 9"List": "list", 10"no": 1 , 11"name": 山田太郎 12}, 13条件2:{ 14"List": "list", 15"no": 2 , 16"name": 最上恵子 17 }, 18条件3:{ 19"List": "list", 20"no": 3 , 21"name": マイケル 22 } 23}
###補足情報(言語/FW/ツール等のバージョンなど)
事前条件:RestAPIは完成済み、URLはhttp:sarada/hogehoge/{パラメータ,パラメータ}とした場合。
環境:STS,SpringBoot
言語:Java8、HTML,JS,timeleef
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。