潘志宝
2024-08-15 1ecdfbd44346e5add6ff0386576d2f7f22ce30f7
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.infra.api.file;
H 2
3 import com.iailab.framework.common.pojo.CommonResult;
4 import com.iailab.module.infra.api.file.dto.FileCreateReqDTO;
5 import com.iailab.module.infra.enums.ApiConstants;
6 import io.swagger.v3.oas.annotations.tags.Tag;
7 import io.swagger.v3.oas.annotations.Operation;
8 import org.springframework.cloud.openfeign.FeignClient;
9 import org.springframework.web.bind.annotation.PostMapping;
10 import org.springframework.web.bind.annotation.RequestBody;
11 import org.springframework.web.bind.annotation.RequestParam;
12
13 import javax.validation.Valid;
14
15 @FeignClient(name = ApiConstants.NAME) // TODO iailab:fallbackFactory =
16 @Tag(name = "RPC 服务 - 文件")
17 public interface FileApi {
18
19     String PREFIX = ApiConstants.PREFIX + "/file";
20
21     /**
22      * 保存文件,并返回文件的访问路径
23      *
24      * @param content 文件内容
25      * @return 文件路径
26      */
27     default String createFile(byte[] content) {
28         return createFile(null, null, content);
29     }
30
31     /**
32      * 保存文件,并返回文件的访问路径
33      *
34      * @param path 文件路径
35      * @param content 文件内容
36      * @return 文件路径
37      */
38     default String createFile(String path, byte[] content) {
39         return createFile(null, path, content);
40     }
41
42     /**
43      * 保存文件,并返回文件的访问路径
44      *
45      * @param name 原文件名称
46      * @param path 文件路径
47      * @param content 文件内容
48      * @return 文件路径
49      */
50     default String createFile(@RequestParam("name") String name,
51                               @RequestParam("path") String path,
52                               @RequestParam("content") byte[] content) {
53         return createFile(new FileCreateReqDTO().setName(name).setPath(path).setContent(content)).getCheckedData();
54     }
55
56     @PostMapping(PREFIX + "/create")
57     @Operation(summary = "保存文件,并返回文件的访问路径")
58     CommonResult<String> createFile(@Valid @RequestBody FileCreateReqDTO createReqDTO);
59
60 }