グループ情報検索実装編#
1.1. 処理概要#
画面の入力内容をもとに、条件に合うグループの件数の取得と、グループ情報の検索を行います。
取得したグループ件数をもとに、グループ情報を表示するページ数を算出して画面に表示します。
画面上でページ番号が選択された場合は、その数によってグループ情報の検索の開始位置と終了位置を指定することで、ページング処理を実装しています。
本処理を行うには、API認証よりAPIを呼び出すためのアクセストークンが必要となります。
1.1.1. 呼出API#
以下、グループ検索で呼び出すAPIとなります。
No | API | 処理内容 | 使用用途 |
---|---|---|---|
1 | GET /v2/api/group | グループを検索する | グループ一覧画面で検索ボタン押下時にグループ情報を検索 |
2 | GET /v2/api/grouplistcount | グループの件数を取得する | 入力情報をもとにグループ情報の件数を検索 |
1.1.2. 処理フロー#
グループ検索を行うまでの処理は以下のフローとなります。
1.1.3. 実装例#
以下API呼出の実装例となります。
※本マニュアルに記載している実装例は、分かりやすさを優先し簡易的に記載しております。提供しているソースと異なりますので詳細については提供ソースをご確認ください。
GroupListController.java
/** * グループ検索処理 * @param form グループ一覧フォーム * @return グループ一覧フォーム */ private GroupListForm searchGroup(GroupListForm form, String groupId) { // グループの件数検索を行う Web_IFGroupListCountSearch_I web_IFGroupListCountSearch_I = new Web_IFGroupListCountSearch_I(); if (groupId == null){ web_IFGroupListCountSearch_I.group_name = SampleUtil.emptyToNull(form.getGroupnameSch()); web_IFGroupListCountSearch_I.group_id = SampleUtil.emptyToNull(form.getGroupidSch()); } else { web_IFGroupListCountSearch_I.group_name = SampleUtil.emptyToNull(form.getGroupnameSch()); web_IFGroupListCountSearch_I.group_id = SampleUtil.emptyToNull(groupId); form.setGroupId(groupId); form.setGroupidSch(groupId); } // 処理を実行 Web_IFGroupListCountSearch_O web_IFGroupListCountSearch_O = null; try { web_IFGroupListCountSearch_O = groupService.groupListCount(web_IFGroupListCountSearch_I); if (ControllerConstants.API_RESULT_NG.equals(web_IFGroupListCountSearch_O.result_information.result)) { form.setErrorInformation(web_IFGroupListCountSearch_O.result_information.detailed_result); return form; } } catch (ApiException e) { return form; } catch (Exception e) { return form; } // 件数を格納 Long lCnt = Long.valueOf(web_IFGroupListCountSearch_O.count); if (lCnt == 0L) { form.setErrorInformation(getMsg(MessageConstants.MSGE00003)); return form; } form.setListSize(lCnt); // 件数が1件以上ある場合、グループの検索を行う if (lCnt > 0L) { Web_IFGroupListSearch_I web_IFGroupListSearch_I = new Web_IFGroupListSearch_I(); String GroupidSch = form.getGroupId(); String GroupnameSch = form.getGroupnameSch(); if (GroupidSch == null && GroupnameSch == null) { web_IFGroupListSearch_I.group_name = null; web_IFGroupListSearch_I.group_id = null; web_IFGroupListSearch_I.sort_item1 = SampleUtil.emptyToNull(form.getSortItem1()); web_IFGroupListSearch_I.sort1 = SampleUtil.emptyToNull(form.getSort1()); web_IFGroupListSearch_I.sort_item2 = SampleUtil.emptyToNull(form.getSortItem2()); web_IFGroupListSearch_I.sort2 = SampleUtil.emptyToNull(form.getSort2()); web_IFGroupListSearch_I.start_position = String.valueOf(form.getStartPosition()); web_IFGroupListSearch_I.end_position = String.valueOf(form.getEndPosition()); }else if (GroupidSch != null && GroupnameSch != null){ web_IFGroupListSearch_I.group_name = SampleUtil.emptyToNull(form.getGroupnameSch()); web_IFGroupListSearch_I.group_id = SampleUtil.emptyToNull(form.getGroupidSch()); web_IFGroupListSearch_I.sort_item1 = SampleUtil.emptyToNull(form.getSortItem1()); web_IFGroupListSearch_I.sort1 = SampleUtil.emptyToNull(form.getSort1()); web_IFGroupListSearch_I.sort_item2 = SampleUtil.emptyToNull(form.getSortItem2()); web_IFGroupListSearch_I.sort2 = SampleUtil.emptyToNull(form.getSort2()); web_IFGroupListSearch_I.start_position = String.valueOf(form.getStartPosition()); web_IFGroupListSearch_I.end_position = String.valueOf(form.getEndPosition()); } else { web_IFGroupListSearch_I.group_name = SampleUtil.emptyToNull(form.getGroupnameSch()); web_IFGroupListSearch_I.group_id = SampleUtil.emptyToNull(form.getGroupidSch()); web_IFGroupListSearch_I.sort_item1 = SampleUtil.emptyToNull(form.getSortItem1()); web_IFGroupListSearch_I.sort1 = SampleUtil.emptyToNull(form.getSort1()); web_IFGroupListSearch_I.sort_item2 = SampleUtil.emptyToNull(form.getSortItem2()); web_IFGroupListSearch_I.sort2 = SampleUtil.emptyToNull(form.getSort2()); web_IFGroupListSearch_I.start_position = String.valueOf(form.getStartPosition()); web_IFGroupListSearch_I.end_position = String.valueOf(form.getEndPosition()); } // 処理を実行 Web_IFGroupListSearch_O web_IFGroupListSearch_O = null; try { web_IFGroupListSearch_O = groupService.groupListSearch(web_IFGroupListSearch_I); } catch (ApiException e) { throw e; } catch (Exception e) { throw e; } GroupInformationListDto groupInformationListDto = null; List<GroupInformationListDto> groupList = new ArrayList<GroupInformationListDto>(); for (Web_GroupInformationList list : web_IFGroupListSearch_O.group_information_list) { groupInformationListDto = new GroupInformationListDto(); groupInformationListDto.setGroupId(list.group_id); groupInformationListDto.setGroupName(list.group_name); groupList.add(groupInformationListDto); } form.setGroupList(groupList); } return form; }
GroupService.java
/** * グループ_件数検索 API * * @param Web_IFGroupListCountSearch_I IFグループ_件数検索_入力 * @return IFグループ_件数検索_出力 */ public Web_IFGroupListCountSearch_O groupListCount(Web_IFGroupListCountSearch_I web_IFGroupListCountSearch_I) { // 通信設定 HashMap<String, String> mapQueryString = new HashMap<String, String>(); mapQueryString.put(UriInfo.group_id, web_IFGroupListCountSearch_I.group_id); mapQueryString.put(UriInfo.group_name, web_IFGroupListCountSearch_I.group_name); String strURI = ClientUtil.makeURI(UriInfo.GroupListCount, null, mapQueryString); HttpGet getMethod = ClientUtil.makeHttpGet(strURI); return CommonHttpClient.httpGet(getMethod, Web_IFGroupListCountSearch_O.class); } /** * グループ_検索 API * * @param Web_IFGroupListSearch_I IFグループ_検索_入力 * @return IFグループ_検索_出力 */ public Web_IFGroupListSearch_O groupListSearch(Web_IFGroupListSearch_I web_IFGroupListSearch_I) { // 通信設定 HashMap<String, String> mapQueryString = new HashMap<String, String>(); mapQueryString.put(UriInfo.group_id, web_IFGroupListSearch_I.group_id); mapQueryString.put(UriInfo.group_name, web_IFGroupListSearch_I.group_name); mapQueryString.put(UriInfo.sort_item1, web_IFGroupListSearch_I.sort_item1); mapQueryString.put(UriInfo.sort1, web_IFGroupListSearch_I.sort1); mapQueryString.put(UriInfo.sort_item2, web_IFGroupListSearch_I.sort_item2); mapQueryString.put(UriInfo.sort2, web_IFGroupListSearch_I.sort2); mapQueryString.put(UriInfo.start_position, web_IFGroupListSearch_I.start_position); mapQueryString.put(UriInfo.end_position, web_IFGroupListSearch_I.end_position); String strURI = ClientUtil.makeURI(UriInfo.GroupSearch, null, mapQueryString); HttpGet getMethod = ClientUtil.makeHttpGet(strURI); return CommonHttpClient.httpGet(getMethod, Web_IFGroupListSearch_O.class); }
共通HTTPリクエストクラス[CommonHttpClient.java]の実装例についてはこちらをご参照ください。