欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > API项目5:申请签名 在线调用接口

API项目5:申请签名 在线调用接口

2024/10/23 23:24:17 来源:https://blog.csdn.net/Gus10124/article/details/142993082  浏览:    关键词:API项目5:申请签名 在线调用接口

开发申请签名

现在用户已经能看到这个接口了,也能看到这个接口文档,接下来就要在线调用

现在我们可以给每个新注册的用户自动分配一个签名和密钥,去修改一下注册流程:

backend 项目,找到 UserServiceImpl.java 中的 userRegister

①在插入数据前增加分配 ak、sk,把插入数据变成第四步

②找到 User.java,补充 ak、sk

③在 UserMapper.xml 也添加上 ak、sk

回到 UserServiceImpl.java 中的 userRegister, 把得到的值设置给用户

重启后端项目,访问 http://localhost:8101/api/doc.html 然后注册

去数据库里看一下

注册时自动分配 ak、sk 就搞定了

创建真实数据

用户也有签名了,就可以在线来调用这个接口,回到前端页面创建一个真实一点的数据

别忘了添加请求参数

接下来要实际地让后端去调用这个接口

调用流程

为了更规范、更安全,以及方便进行统计,建议使用后端调用的方式。这种方式更加规范和安全,还可以隐藏接口地址。如果直接将模拟接口完全开放给用户,那么后续的网关和计费等工作可能会徒劳无功。

前端要做的事情,就是把所有它要调用的接口 id 、请求参数传给后端,后端负责调用。

总结

  1. 前端将用户输入的请求参数和要测试的接口 id 发给平台后端
  2. (在调用前可以做一些校验)
  3. 平台后端去调用模拟接口

后端开发在线调用

开发测试接口

InterfaceController

/*** 测试调用** @param interfaceInfoInvokeRequest* @param request* @return*/
@PostMapping("/invoke")
public BaseResponse<Object> invokeInterfaceInfo(@RequestBody InterfaceInfoInvokeRequest interfaceInfoInvokeRequest,HttpServletRequest request) {if (interfaceInfoInvokeRequest == null || interfaceInfoInvokeRequest.getId() <= 0) {throw new BusinessException(ErrorCode.PARAMS_ERROR);}long id = interfaceInfoInvokeRequest.getId();String userRequestParams = interfaceInfoInvokeRequest.getUserRequestParams();InterfaceInfo oldInterfaceInfo = interfaceInfoService.getById(id);if (oldInterfaceInfo == null) {throw new BusinessException(ErrorCode.NOT_FOUND_ERROR);}if (oldInterfaceInfo.getStatus() == InterfaceInfoStatusEnum.OFFLINE.getValue()) {throw new BusinessException(ErrorCode.PARAMS_ERROR, "接口已关闭");}// 获取当前登录用户的ak和sk,这样相当于用户自己的这个身份去调用,// 也不会担心它刷接口,因为知道是谁刷了这个接口,会比较安全User loginUser = userService.getLoginUser(request);String accessKey = loginUser.getAccessKey();String secretKey = loginUser.getSecretKey();SuApiClient tempsuApiClient = new SuApiClient(accessKey, secretKey);// 我们只需要进行测试调用,所以我们需要解析传递过来的参数。Gson gson = new Gson();// 将用户请求参数转换为com.model.User对象com.sujie.suapiclientsdk.model.User user = gson.fromJson(userRequestParams, com.sujie.suapiclientsdk.model.User.class);// 调用YuApiClient的getUsernameByPost方法,传入用户对象,获取用户名String usernameByPost = tempsuApiClient.getUserNameByPost(user);// 返回成功响应,并包含调用结果return ResultUtils.success(usernameByPost);
}

接口发布,在输入参数调用即可返回结果

记得启动接口项目

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com