import com.fasterxml.jackson.databind.ObjectMapper;
……
public class SearchAction extends BaseAction {
……
/**
* Open Api: 特定资源检索开放接口
* @param request
* @param response
*/
public void find_api(HttpServletRequest request, HttpServletResponse response) {
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = "";
Map<String, Object> map = new HashMap<String, Object>();
boolean success = false;
StringBuffer error = new StringBuffer();
try{
// 必须参数:type key
String type = request.getParameter("type");
String key = request.getParameter("key");
if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(key) && key.trim().length() >= 3){
// 根据type到OpenApi/Search分类下获取对应配置
SearchOpenApi apiBean = this.getSearchService().getApiBeanByType(type.trim());
// 获取检索结果
List<SearchBean> dataList = this.getSearchService().findSearchBeansByKeyAndApi(key.trim(), apiBean);
if (null != dataList && dataList.size() > 0) {
//生成指定反馈json
success = true;
map.putAll(this.getSearchBeanListJson(dataList));
} else {
success = false;
error.append("没有符合条件的记录!");
}
} else {
success = false;
error.append("参数错误!");
}
}catch(Exception e){
LogUtility.logError("find_api error", e);
success = false;
error.append(e.toString());
}
map.put("success", success);
if (!success && error.length() > 0)
map.put("error", error.toString());
try {
jsonString = objectMapper.writeValueAsString(map);
} catch (JsonProcessingException e) {
LogUtility.logError("find_api JsonProcessingException", e);
}
outPut(request,response, jsonString);
}
}