一个API接口的例子,包括单元测试
生活随笔
收集整理的這篇文章主要介紹了
一个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接口的例子,包括单元测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PowerBI随笔(5)-关系模型与报表
- 下一篇: PowerBI随笔(6)-filter、