Bootstrap

Knife4j在springboot中的基本使用

Knife4j是一个基于Swagger的Java后端API文档生成工具,通过集成Swagger UI和Swagger Bootstrap UI可以快速创建美观易用的API文档。

在Spring Boot 项目中,使用Knife4j可以简单地添加Swagger UI和Swagger Bootstrap UI的依赖,然后使用注解标记API接口和参数, Knife4j将自动生成文档。

  1. 添加依赖

在项目的构建文件中(例如build.gradle或pom.xml)添加Knife4j的依赖:

Maven:

		<dependency>
			<groupId>com.github.xiaoymin</groupId>
			<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
			<version>4.1.0</version>
		</dependency>

Gradle:

implementation group: 'com.github.xiaoymin',  name: 'knife4j-spring-ui', version: '{version}

 3.标记api接口和参数

package com.example.demo.controller;

import com.example.demo.bean.Order;
import com.example.demo.model.OrderDao;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.net.URI;
import java.util.List;

@RestController
@RequestMapping("/api/orders")
@Tag(name = "订单管理")
public class OrderApi {
    private final OrderDao orderDao;

    public OrderApi(OrderDao orderDao) {
        this.orderDao = orderDao;
    }

    @Operation(summary = "获取订单")
    @GetMapping
    public ResponseEntity<List<Order>> findAllOrders() {
        List<Order> orders = orderDao.findAllOrders();
        if (orders.isEmpty()) {
            return ResponseEntity.notFound().build();
        }
        return ResponseEntity.ok().body(orders);
    }

    @GetMapping("/{id}")
    public ResponseEntity<Order> findOrderById(@PathVariable String id) {
        Order order = orderDao.findOrderById(id);
        if (order == null) {
            return ResponseEntity.notFound().build();
        }
        return ResponseEntity.ok().body(order);
    }

    @Operation(summary = "创建订单")
    @PostMapping
    public ResponseEntity<Order> createOrder(@RequestBody Order order) {
        Order savedOrder = orderDao.createOrder(order);
        return ResponseEntity.created(URI.create("/api/orders/" + savedOrder.getId())).body(savedOrder);
    }

    @Operation(summary = "修改订单")
    @PutMapping("/{id}")
    public ResponseEntity<Order> updateOrder(@PathVariable String id, @RequestBody Order order) {
        Order savedOrder = orderDao.updateOrder(id, order);
        return ResponseEntity.ok().body(savedOrder);
    }

    @Operation(summary = "删除订单")
    @DeleteMapping("/{id}")
    public ResponseEntity<Void> deleteOrder(@PathVariable String id) {
        orderDao.deleteOrder(id);
        return ResponseEntity.ok().build();
    }
}

4.运行应用程序 

运行项目,并在浏览器中访问http://localhost:8080/doc.html,就可以看到生成的Knife4j文档。

;