日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个API接口的例子,包括单元测试

發布時間:2025/3/12 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个API接口的例子,包括单元测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

功能大體需求是通過平臺獲取該平臺的所有節點(節點按省,運營商分組)以及節點的所有IP信息(地址和層級),表關系比較復雜,搞了兩天才好,是自己一開始搞復雜了。

VO:存放所需元素實體類

public class PlatformIpVO implements Serializable {private String province;private String ISP;private List<PlatformMachineIp> platformMachineIps;private String platformNodes;getters and setters... }

Service:

/**據平臺查詢區域數據,省,isp,ip等 */ public List<PlatformIpVO> getIpsAreaByPlatform(String platform); @Override public List<PlatformIpVO> getIpsAreaByPlatform(String pl_name_en) {pl_name_en = StringUtils.trimToEmpty(pl_name_en);if(pl_name_en.equals("")){return null;}List<PlatformIpVO> tempPlatformIpVOs = new ArrayList<PlatformIpVO>();List<PlatformIpVO> platformIpVOs = new ArrayList<PlatformIpVO>();PlatformInfo platformInfo = this.platformInfoMapper.findPlatformByEname(pl_name_en);//根據英文名獲取平臺idtempPlatformIpVOs = this.platformInfoMapper.getNodesByPlatform(platformInfo.getPlId());for(PlatformIpVO platformIpVO : tempPlatformIpVOs){//重新封裝vo,添加ip信息platformIpVO = wrapPlatformIpVO(platformIpVO);platformIpVOs.add(platformIpVO);}return platformIpVOs; }

Method:

/**重新封裝platformIpVO,給PlatformMachineIps賦值*/ PlatformIpVO wrapPlatformIpVO(PlatformIpVO platformIpVO){String ispShortname = this.platformInfoMapper.getIspShortnameByid(platformIpVO.getISP());platformIpVO.setISP(ispShortname);String[] platformNodes = platformIpVO.getPlatformNodes().split(",");List<PlatformMachineIp> platformMachineIps = this.platformMachineMapper.getMachineIpsByNodes(platformNodes);platformIpVO.setPlatformMachineIps(platformMachineIps);return platformIpVO; }Mapper.java:

/** 根據平臺id獲取節點*/ List<PlatformIpVO> getNodesByPlatform(@Param("pl_id") Integer pl_id);/** 通過isp的id獲取shortname */ String getIspShortnameByid(@Param("isp") String isp);Mapper.xml:

<!-- 通過平臺id獲取平臺節點vo對象,不包含ip fangguitang@dnion.com--> <select id="getNodesByPlatform" resultType="PlatformIpVO">SELECT pn.province AS province,pn.nd_isp AS ISP,GROUP_CONCAT(pn.nd_id) AS platformNodesFROM platform_info pi LEFT JOIN platform_node_relation pnr ON pnr.pl_id = pi.pl_idLEFT JOIN platform_node pn ON pn.nd_id = pnr.nd_idWHERE pi.pl_id = #{pl_id}GROUP BY pn.province,pn.nd_isp </select> <!-- 通過isp的id獲取shortname --> <select id="getIspShortnameByid" resultType="STRING">SELECT si.shortnameFROM system_isp siWHERE si.id = #{isp} </select>Test:測試類:

//通過平臺獲取節點信息,ip信息 @Test @Rollback public void testGetIpsAreaByPlatform(){String platform = "XNOP060";try {ipPlatformService.getIpsAreaByPlatform(platform);} catch (Exception e) {e.printStackTrace();} }


創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的一个API接口的例子,包括单元测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。