初入公司的小白时如何进行不同系统之间数据同步接口的编写

初入公司的小白实习生如何进行不同系统之间数据同步接口的编写

背景介绍

首先,这仅基于我实习的经历来给大家提供参考,大家有疑问可以评论区沟通,我也会尽力解答。我的项目背景基于两个不同系统之间的数据同步,涉及到的接口形式为JSON和XML形式两种。

接口开发流程

常量类的位置

  1. 众所周知,常量类中放着接口的链接地址。
  2. 你需要定义一个常量来接收你的接口地址。(本地写死,读取配置)。
    (1)读取Apollo配置文件的链接
    /**
     * 获取HR接口地址
     */
    public static String DHR_URL;

    @Value(value = "${interface.hr-url}")
    public void sethrUrl(String hrUrl) {
        HR_URL = hrUrl;
    }

发送HTTP请求

  1. 有了地址就是发送HTTP请求去调用接口获取数据了。
    (1) 发送请求前,需要封装好请求头和请求体参数。
        //请求体参数设置
        JSONObject requestParams= new JSONObject();
        jsonObject.put("usercode", "123");
        jsonObject.put("username", "123");
        jsonObject.put("pwd", "122");
        //请求头参数设置
        JSONObject head= new JSONObject();
        jsonObject.put("Content-Type", "application/json");
(2)  发送HTTP请求可以用封装好的工具或者jdk自带的发送请求获得返回数据。
        try (CloseableHttpResponse response = getResponse(url, requestParams.toJSONString(), header, POST, "UTF-8", "BODY")) {
            if (response == null || response.getEntity() == null)
                throw new IllegalStateException(url + " request failed");
            if (StringUtils.isNotBlank(charset))
                charset = "utf-8";
            String result = EntityUtils.toString(response.getEntity(), charset);
            // 关闭链接
            EntityUtils.consume(response.getEntity());
            response.close();
            return result;
        }

解析获取的数据

  1. 注意需要判断是否拿到数据,不要出现空指针情况。
  2. 拿到数据之后,同步数据数据就是将数据插入或者更新到数据库中。
  3. 采用微服务的项目可能需要远程调用已经写好的插入删除方法。
@FeignClient(value = “你的其他服务的应用名称”, contextId = "CxfSendhrServiceRestful")
public interface ISaafCxfDhrRestful {
    @RequestMapping(value = "远程服务的接口路径", method = RequestMethod.POST)
    void doSendhrXml(@RequestBody IntfhrPublicBO dhrPublicBO) throws IOException;

定时任务

  1. 定时调度模块中写好定时任务,每多久调度一次接口同步一次数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值