rest 调用有参数接口

//有参数rest,调用客户端 OperateLogServiceImpl.java

public ResultModel<List<OperateLogVO>> getOperateLogList(OperateLogFilter filter, int page, int rows, String sortName, String sortType) {
String requestUrl = ConfigFileLoad.getConfContent("NFVO_IP") + "/rest/operlogs/";
final List<OperateLogVO> voList = new ArrayList<OperateLogVO>();
// HttpClientGetRequest request = new HttpClientGetRequest(requestUrl);
HttpRestClientRequest request = new HttpRestClientRequest(requestUrl);
request.addParam("pageSize", rows);
request.addParam("pageNum", page);
if (StringUtils.isNotBlank(filter.getOperateType())) {
request.addParam("operateType", filter.getOperateType());
}
if (!"-1".equals(filter.getSubsystem())) {
request.addParam("subsystem", filter.getSubsystem());
}
if (StringUtils.isNotBlank(filter.getEventId())) {
request.addParam("eventId", filter.getEventId());
}
if (StringUtils.isNotBlank(filter.getsDate())) {
request.addParam("startTime", filter.getsDate());
}

if (StringUtils.isNotBlank(filter.geteDate())) {
request.addParam("endTime", filter.geteDate());
}

if ("eventIdSort".equals(sortName)) {
sortName = "event_id";
} else if ("operateTypeSort".equals(sortName)) {
sortName = "operate_type";
} else if ("timestampSort".equals(sortName)) {
sortName = "create_time";
}
if (StringUtils.isNotBlank(sortName)) {
request.addParam("orderField", sortName);
request.addParam("orderType", sortType);
} else {
request.addParam("orderField", "create_time");
request.addParam("orderType", "1");
}

String response = request.postRequest();
JSONObject resObj = JSONObject.parseObject(response);// .fromObject(response);
JSONObject jsonObj = resObj.getJSONObject("result");
JSONArray jsArray = jsonObj.getJSONArray("operationLogList");
int totalSize = DataType.getAsInt(jsonObj.get("size"));
OperateLogVO vo;
JSONObject jso;
for (int i = 0; i < jsArray.size(); i++) {
jso = jsArray.getJSONObject(i);
vo = new OperateLogVO();
vo.setId("1");
vo.setUserId(jso.getString("userId"));
vo.setEventId(jso.getString("eventId"));
vo.setOperateType(jso.getString("operateType"));
vo.setRequestContent(jso.getString("requestContent"));
vo.setRequestStatus(jso.getString("responseStatus"));
vo.setSubsystem(jso.getString("subsystem"));
vo.setTimestamp(jso.getString("createTime"));
vo.setResponseContent(jso.getString("responseContent"));
voList.add(vo);
}

ResultModel<List<OperateLogVO>> result = null;

result = new ResultModel<List<OperateLogVO>>(voList);
result.setResult(Constants.RESULT_FLAG.SUCCESS.number());
result.setTotalSize(totalSize);
result.setCurrentPageNum(page);
result.setPageSize(rows);
result.setStartRowNo(CommonUtil.getStartRowNo(page, rows));
result.setTotalPageNum(totalSize % rows == 0 ? totalSize / rows : (totalSize / rows) + 1);

return result;
}


@POST
@Path("/operlogs")
@Produces(ContentType.APPLICATION_JSON_UTF_8)
@Consumes(ContentType.APPLICATION_JSON_UTF_8)
public OperationLogPageResult find(@QueryParam("userId") String userId,
直接将参数转化成变量
@QueryParam("eventId") String eventId,
@QueryParam("subsystem") String subsystem,
@QueryParam("operateType") String operateType,
@QueryParam("startTime") String startTime,
@QueryParam("endTime") String endTime,
@QueryParam("pageSize") String pageSize,
@QueryParam("pageNum") String pageNum,
@QueryParam("orderField") String orderField,
@QueryParam("orderType") String orderType) throws ManoException
{
try
{
OperLogQuery operlogQuery = new OperLogQuery();
operlogQuery.setStartTime(startTime);
operlogQuery.setEndTime(endTime);
operlogQuery.setEventId(eventId);
operlogQuery.setOperateType(operateType);
operlogQuery.setOrderField(orderField);
operlogQuery.setOrderType(orderType);
operlogQuery.setSubsystem(subsystem);
operlogQuery.setUserId(userId);

OperationLogPageResult result = new OperationLogPageResult();
int size = operationLogLS.countAll(operlogQuery);
result.setSize(size);

if(!StringUtils.isEmpty(pageSize))
{
int pageSizeInt = Integer.parseInt(pageSize);
operlogQuery.setStartNum((Integer.parseInt(pageNum) - 1) * pageSizeInt);
operlogQuery.setPageSize(pageSizeInt);
}

List<OperationLog> operationLogList = operationLogLS.selectPage(operlogQuery);

result.setOperationLogList(operationLogList);

return result;
}
catch (Exception ex)
{
LOG.error(ex.getMessage(), ex);
throw new ManoException(ex);
}
}

========================================================


//有参数二======================:

OperateLogServiceImpl.java
@Override
public String saveOperateLog(String operateType, String requestContent, String responstatus, String responseContent) {
String ret = "";
try {
logger.info("开始记录日志");
String url = ConfigFileLoad.getConfContent("NFVO_IP") + "/rest/logs/generation";
// url = "http://172.16.25.138:9090/nfvo/rest/logs/generation";
HttpRestClientRequest hr = new HttpRestClientRequest(url);
hr.addParam("Event-Id", UUID.randomUUID().toString());
hr.addParam("User-Id", formatStr(CommonUtil.getUserId()));
hr.addParam("Operate-Type", formatStr(operateType));
hr.addParam("Request-Content", formatStr(requestContent));
hr.addParam("Response-Status", formatStr(responstatus));
hr.addParam("Response-Content", formatStr(responseContent));
hr.addParam("Subsystem", "GUI");
ret = hr.postRequest();
} catch (Exception e) {
logger.info("记录日志失败" + ret);
e.printStackTrace();
}
return ret;
}


@Service("NsdService")
public class NsdServiceImpl implements INsdService {
private static void addOperateLog() {
String url = "http://172.16.25.138:9090/nfvo/rest/logs/generation";
HttpRestClientRequest hr = new HttpRestClientRequest(url);



OperationLogRest

///上文的带参数的接口调动,mybatise的应用
@POST
@Path("logs/generation")
@Produces(ContentType.APPLICATION_JSON_UTF_8)
@Consumes(ContentType.APPLICATION_JSON_UTF_8)
public long saveOperationLog(@Context HttpServletRequest request) throws ManoException
{
try
{
OperationLog operationLog = new OperationLog();
operationLog.setEventId(request.getParameter("Event-Id"));
operationLog.setOperateType(request.getParameter("Operate-Type"));
operationLog.setRequestContent(request.getParameter("Request-Content"));
operationLog.setSubsystem(request.getParameter("Subsystem"));
operationLog.setUserId(request.getParameter("User-Id"));
operationLog.setResponseContent(request.getParameter("Response-Content"));
operationLog.setResponseStatus(request.getParameter("Response-Status"));
operationLogLS.insertOne(operationLog);
return operationLog.getId();
}
catch (Exception ex)
{
LOG.error(ex.getMessage(), ex);
throw new ManoException(ex);
}
}


================================================
有参数调用三
//一个path一段 WebTarget webTarget = client.target(vimRestRootUrl).path(VDU_URL).path(vduUUID).path("detail");

@Override
public TenantNetwork queryTenantNetwork(String uuid) {

if(StringUtils.isEmpty(uuid))
{
return null;
}

Client client = getClient();
WebTarget webTarget = client.target(vimRestRootUrl)
.path("vlinks_internal/" + uuid + "/detail");
Invocation.Builder invocationBuilder = webTarget.request(ContentType.APPLICATION_JSON_UTF_8);

TenantNetworkQueryResp resp = invocationBuilder.get(TenantNetworkQueryResp.class);

if(!resp.getRetCode().equals("ok"))
{
if(RestResultCode.ITEM_NOT_FOUND.equals(resp.getRetCode()))
{
logger.error(resp.getRetCode() + ":" + resp.getMsg());
return null;
}
else
{
throw new ManoException(resp.getRetCode(), resp.getMsg());
}
}

return resp.getResult();
}


@GET
@Path("vlinks_internal/{vlink_uuid}/detail")//{vlink_uuid}
这个变量直接通过前方传过的地址位置对应接收
@Produces(ContentType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.TEXT_PLAIN)
//这里的这个之所以会设置成变量有path中决定生成
public Network findNetworkById(
@PathParam("vlink_uuid") String vlinkUUID(直接用),@HeaderParam("X-Auth-Token") String token) throws ManoException {

logger.info("findNetworkById-X-Auth-Token="+token);
logger.info("findNetworkById-vlinkUUID="+vlinkUUID);

if ((null == vlinkUUID) || (vlinkUUID.trim().equalsIgnoreCase(""))) {
throw new ManoException(ExceptionCode.PARAM_NEEDED_IS_NULL);
}

try {

return networkService.findNetworkById(vlinkUUID,token);

} catch (ManoException ex) {
throw ex;
} catch (Exception ex)
{
logger.error("findNetworkById-ex = " + ex);
throw new ManoException(ExceptionCode.FIND_VLINK_INTERNAL_FAILED, ex);
}



}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值