• apifox的使用以及和idea集成


    apifox 

    简介

    Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman + Swagger + Mock + JMeter,由此可见apifox集功能于一身,极大的提升了我们开发的效率,不用再为postman网络连接失败而发愁,更不用为swagger各种依赖冲突二苦恼

    作用

    下载

    Apifox - API 文档、调试、Mock、测试一体化协作平台 - 接口文档工具,接口自动化测试工具,接口Mock工具,API文档工具,API Mock工具,API自动化测试工具

    文档

    Apifox 快速入门 | Apifox 帮助文档

    IDEA中集成 

    安装插件

     

    获取令牌和id

     

     

    配置

    映射配置规则

    如:java-wtl-single:3398260,月木学途

    java-wtl-single是项目的模块,一般就是分布式模块,如:

    3398260就是你的id

    月木学途对应你的apifox的接口目录

    java注解规范

     

    生成接口

     

    代码站位

    1. package jkw.controller.back;
    2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    3. import jkw.pojo.Admin;
    4. import jkw.service.AdminService;
    5. import jkw.vo.BaseResult;
    6. import org.springframework.beans.factory.annotation.Autowired;
    7. import org.springframework.security.access.prepost.PreAuthorize;
    8. import org.springframework.security.core.Authentication;
    9. import org.springframework.security.core.context.SecurityContext;
    10. import org.springframework.security.core.context.SecurityContextHolder;
    11. import org.springframework.security.core.userdetails.UserDetails;
    12. import org.springframework.security.crypto.password.PasswordEncoder;
    13. import org.springframework.util.StringUtils;
    14. import org.springframework.web.bind.annotation.*;
    15. /**
    16. * back后台用户
    17. */
    18. @RestController
    19. @RequestMapping("/sys/admin")
    20. @CrossOrigin
    21. public class AdminController {
    22. @Autowired
    23. private AdminService adminService;
    24. @Autowired
    25. private PasswordEncoder encoder;
    26. /**
    27. * 新增管理员
    28. *
    29. * @param admin 管理员
    30. * @return
    31. */
    32. @PostMapping("/add")
    33. @PreAuthorize("hasAnyAuthority('/sys/admin')")
    34. public BaseResult add(Admin admin) {
    35. String password = admin.getPassword();
    36. password = encoder.encode(password);
    37. admin.setPassword(password);
    38. adminService.add(admin);
    39. return BaseResult.ok();
    40. }
    41. /**
    42. * 修改管理员(设置空密码则还是原来密码)
    43. *
    44. * @param admin 管理员
    45. * @return
    46. */
    47. @PostMapping("/update")
    48. public BaseResult update(Admin admin) {
    49. String password = admin.getPassword();
    50. if (StringUtils.hasText(password)) { // 密码不为空加密
    51. password = encoder.encode(password);
    52. admin.setPassword(password);
    53. }
    54. adminService.update(admin);
    55. return BaseResult.ok();
    56. }
    57. /**
    58. * 删除管理员(附带对应的角色)
    59. *
    60. * @param aid 管理员id
    61. * @return
    62. */
    63. @DeleteMapping("/delete")
    64. public BaseResult delete(Integer aid) {
    65. adminService.delete(aid);
    66. return BaseResult.ok();
    67. }
    68. /**
    69. * 修改管理员的状态
    70. *
    71. * @param aid 管理员id
    72. * @return
    73. */
    74. @PostMapping("/updateStatus")
    75. public BaseResult updateStatus(Integer aid) {
    76. adminService.updateStatus(aid);
    77. return BaseResult.ok();
    78. }
    79. /**
    80. * 根据id查询管理员(详情)
    81. *
    82. * @param aid 管理员id
    83. * @return
    84. */
    85. @GetMapping("/findById")
    86. public BaseResult<Admin> findById(Integer aid) {
    87. Admin admin = adminService.findById(aid);
    88. return BaseResult.ok(admin);
    89. }
    90. /**
    91. * 分页查询管理员
    92. *
    93. * @param page 当前页
    94. * @param size 每页条数
    95. * @return
    96. */
    97. @PreAuthorize("hasAnyAuthority('/sys/admin')")
    98. @GetMapping("/search")
    99. public BaseResult<Page<Admin>> search(int page, int size) {
    100. Page<Admin> adminPage = adminService.search(page, size);
    101. return BaseResult.ok(adminPage);
    102. }
    103. /**
    104. * 修改管理员角色
    105. *
    106. * @param aid 管理员id
    107. * @param rids 角色id
    108. * @return
    109. */
    110. @PostMapping("/updateRoleToAdmin")
    111. public BaseResult updateRoleToAdmin(Integer aid, Integer[] rids) {
    112. adminService.updateRoleToAdmin(aid, rids);
    113. return BaseResult.ok();
    114. }
    115. /**
    116. * 获取登录管理员名
    117. *
    118. * @return 管理员名
    119. */
    120. @GetMapping("/getUsername")
    121. public BaseResult<String> getUsername() {
    122. // 1.获取会话对象
    123. SecurityContext context = SecurityContextHolder.getContext();
    124. // 2.获取认证对象
    125. Authentication authentication = context.getAuthentication();
    126. // 3.获取登录用户信息
    127. UserDetails userDetails = (UserDetails) authentication.getPrincipal();
    128. String username = userDetails.getUsername();
    129. return BaseResult.ok(username);
    130. }
    131. @GetMapping("/findByUsername")
    132. public BaseResult findByUsername(String username) {
    133. Admin admin = adminService.findByName(username);
    134. return BaseResult.ok(admin);
    135. }
    136. }
    1. package jkw.service.impl;
    2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    4. import jkw.mapper.GoodsSpecificationMapper;
    5. import jkw.mapper.GoodsSpecificationOptionMapper;
    6. import jkw.mapper.GoodsSpecificationOptionsMapper;
    7. import jkw.pojo.GoodsSpecification;
    8. import jkw.pojo.GoodsSpecificationOption;
    9. import jkw.pojo.GoodsSpecificationOptions;
    10. import jkw.service.GoodsSpecificationService;
    11. import org.springframework.beans.factory.annotation.Autowired;
    12. import org.springframework.stereotype.Service;
    13. import org.springframework.transaction.annotation.Transactional;
    14. import java.util.List;
    15. @Service
    16. @Transactional
    17. public class GoodsSpecificationServiceImpl implements GoodsSpecificationService {
    18. @Autowired
    19. private GoodsSpecificationMapper goodsSpecificationMapper;
    20. @Autowired
    21. private GoodsSpecificationOptionMapper goodsSpecificationOptionMapper;
    22. @Autowired
    23. private GoodsSpecificationOptionsMapper goodsSpecificationOptionsMapper;
    24. @Override
    25. public void add(GoodsSpecification goodsSpecification) {
    26. goodsSpecificationMapper.insert(goodsSpecification);
    27. }
    28. @Override
    29. public void update(GoodsSpecification goodsSpecification) {
    30. goodsSpecificationMapper.updateById(goodsSpecification);
    31. }
    32. @Override
    33. public void delete(Integer id) {
    34. //删除商品规格的所有规格项
    35. QueryWrapper<GoodsSpecificationOption> queryWrapper = new QueryWrapper<>();
    36. queryWrapper.eq("goodsSpecificationId", id);
    37. goodsSpecificationOptionMapper.delete(queryWrapper);
    38. //删除商品-规格项的数据
    39. List<GoodsSpecificationOption> goodsSpecificationOptionList = goodsSpecificationOptionMapper.selectList(queryWrapper);
    40. for (GoodsSpecificationOption goodsSpecificationOption : goodsSpecificationOptionList) {
    41. QueryWrapper<GoodsSpecificationOptions> queryWrapper1 = new QueryWrapper<>();
    42. queryWrapper1.eq("goodsSpecificationOptionId", goodsSpecificationOption.getGoodsSpecificationId());
    43. goodsSpecificationOptionsMapper.delete(queryWrapper1);
    44. }
    45. //删除商品规格
    46. goodsSpecificationMapper.deleteById(id);
    47. }
    48. @Override
    49. public GoodsSpecification findById(Integer id) {
    50. return goodsSpecificationMapper.selectById(id);
    51. }
    52. @Override
    53. public Page<GoodsSpecification> search(int page, int size) {
    54. return goodsSpecificationMapper.selectPage(new Page<>(page, size), null);
    55. }
    56. @Override
    57. public List<GoodsSpecification> findAll() {
    58. return goodsSpecificationMapper.selectList(null);
    59. }
    60. @Override
    61. public List<GoodsSpecification> findAllByGoodsTypeId(Integer id) {
    62. QueryWrapper<GoodsSpecification> queryWrapper=new QueryWrapper<>();
    63. queryWrapper.eq("goodsTypeId",id);
    64. return goodsSpecificationMapper.selectList(queryWrapper);
    65. }
    66. }

     

     

  • 相关阅读:
    【树莓派不吃灰】配置samba,文件夹目录配置在闲置U盘,实现局域网文件共享
    openEuler-20.03 LTS管理用户和用户组
    手写简单的mybatis框架
    IDEA插件开发(13)---Dynamic Plugins
    Mysql - 读写分离与读负载均衡之Maxscale
    C++求最大公因数(gcd)的六重境界
    用A-Spice思路解读“西门庆和潘金莲的不可描述之事”,不信你看不懂
    分布式与一致性协议之Quorum NWR算法
    activemq的安全机制、Connection使用方法、Session的使用方法、签收模式、使用事务
    虚拟机Ubuntu操作系统最基本终端命令(安装包+详细解释+详细演示)
  • 原文地址:https://blog.csdn.net/m0_63040701/article/details/133768082