JApiDocs|SpringBoot集成JApiDocs用以生成API文档

框架简介

JApiDocs|SpringBoot集成JApiDocs用以生成API文档_第1张图片

JApiDocs和Swagger都是用于生成API文档的工具,它们各自有一些优点。下面是JApiDocs相较于Swagger的几个优点:

简单易用:JApiDocs相对来说更加简单易用,配置和使用都比较简单明了。它使用Java注解来描述API信息,而不需要额外的配置文件。

代码友好:JApiDocs直接与源代码进行交互,不需要通过额外的配置文件或注解来描述API文档信息。它通过扫描代码中的注释来生成API文档,提供了更加直观和代码友好的方式。

灵活性:JApiDocs提供了丰富的自定义选项,可以根据需要灵活地配置生成的文档内容和样式。可以通过自定义注解、自定义解析器等来满足不同的需求。

减少冗余代码:JApiDocs在生成API文档时,可以通过继承和重写的方式,减少冗余代码的编写。可以将公共的API信息提取到父类或接口中,子类或实现类中只需覆盖需要变更的部分,避免了重复的代码编写。

无侵入性:JApiDocs对代码的侵入性较低,只需要在需要生成文档的地方添加相应的注释或注解即可。不需要修改代码的原有逻辑。

需要注意的是,JApiDocs并不是像Swagger那样成熟和广泛使用的API文档工具,所以在选择时需要考虑自身的需求和项目的实际情况。

详细步骤

pom文件中添加Swagger依赖

<dependency>
  <groupId>io.github.yedaxiagroupId>
  <artifactId>japidocsartifactId>
  <version>1.4.4version>
dependency>

在Spring Boot启动文件中书写配置(或任意一个main方法下运行):

需要修改API文档生成的目录,自己自定义路径!

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import io.github.yedaxia.apidocs.Docs;
import io.github.yedaxia.apidocs.DocsConfig;

@SpringBootApplication
@MapperScan("com.neusoft.elementplusboot.mapper")
public class ElementplusbootApplication {
    public static void main(String[] args) {
        SpringApplication.run(ElementplusbootApplication.class, args);
        
        DocsConfig config = new DocsConfig();
        config.setProjectPath("D:\\Programming\\Code\\eclipseCode\\elementplusboot"); //项目根目录
        config.setProjectName("ElementPlusBoot"); //项目名称
        config.setApiVersion("V1.0");       //声明该API的版本
        config.setDocsPath("D:\\Programming\\Code\\eclipseCode\\elementplusboot\\JApiDocs"); //生成API文档所在目录
        config.setAutoGenerate(Boolean.TRUE);  //不使用就只导出声明了@ApiDoc的接口
        Docs.buildHtmlDocs(config); //执行生成文档
    }
}

在实体类上添加注释

两种注解方式都可以使用!

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

/**
 * 用户实体
 * @author PaperFish
 *
 */
public class Users {

	@TableId(value="uid",type=IdType.AUTO)
	private Integer uid; //用户编号
	private String uname; //用户姓名
	private Integer uage; //用户年龄
	private Integer usex; //用户性别
	
	@Override
	public String toString() {
		return "Users [uid=" + uid + ", uname=" + uname + ", uage=" + uage + ", usex=" + usex + "]";
	}
	public Integer getUid() {
		return uid;
	}
	public void setUid(Integer uid) {
		this.uid = uid;
	}
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
	public Integer getUage() {
		return uage;
	}
	public void setUage(Integer uage) {
		this.uage = uage;
	}
	public Integer getUsex() {
		return usex;
	}
	public void setUsex(Integer usex) {
		this.usex = usex;
	}

}

在控制层需要生成API的类及方法上添加注释

更多高级配置请去官网查看注解的使用:https://japidocs.agilestudio.cn/#/zh-cn/

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.neusoft.elementplusboot.po.Users;
import com.neusoft.elementplusboot.service.UsersService;

import io.github.yedaxia.apidocs.ApiDoc;


/**
 * 用户管理接口
 * @author PaperFish
 *
 */
@RestController
@RequestMapping("/usersController")
public class UsersController {

	@Autowired
	UsersService usersService;

	/**
	 * 分页获取所有用户信息
	 * 
	 * @description 根据页码及页中数量获取用户信息
	 * @param page 页码
	 * @param pageSize 页中数量
	 * @param uname 用户姓名
	 * 
	 */
	@ApiDoc(stringResult = "{total:'', list:'{}'}")
	@GetMapping("/getAllUsers")
	public Map<String, Object> getAllUsers(int page, int pageSize, String uname) {
		// int startpPage = (page - 1) * pageSize;
		Page<Object> startPage = PageHelper.startPage(page, pageSize);
		List<Users> usersList = usersService.getAllUsers(uname);

		Map<String, Object> map = new HashMap<String, Object>();
		map.put("list", usersList); // 记录返回内容
		map.put("total", startPage.getTotal()); // 记录数据条数

		return map;
	}

	/**
	 * 新增用户
	 * 
	 * @description 新增用户信息
	 * @param users 用户对象
	 * 
	 */
	@PostMapping("/saveUsers")
	public int saveUsers(@RequestBody Users users) {
		return usersService.saveUsers(users);
	}

	/**
	 * 更新用户
	 * 
	 * @description 更新用户信息
	 * @param users 用户对象
	 * 
	 */
	@PutMapping("/updateUsers")
	public int updateUsers(Users users) {
		return usersService.updateUsers(users);
	}

	/**
	 * 删除用户
	 * 
	 * @description 删除用户信息
	 * @param uid 用户编号
	 * 
	 */
	@DeleteMapping("/deleteUsers")
	public int deleteUsers(Integer uid) {
		return usersService.deleteUsers(uid);
	}

}

你可能感兴趣的:(Java,spring,boot,java,后端)