KLingDemoController.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. package com.backendsys.modules.sdk.klingai.controller;
  2. import cn.hutool.json.JSONUtil;
  3. import com.backendsys.modules.common.config.security.annotations.Anonymous;
  4. import com.backendsys.modules.common.utils.Result;
  5. import com.backendsys.modules.sdk.klingai.entity.KLGenerationImageParams;
  6. import com.backendsys.modules.sdk.klingai.entity.KLImage2VideoParams;
  7. import com.backendsys.modules.sdk.klingai.entity.KLResponse;
  8. import com.backendsys.modules.sdk.klingai.entity.KLText2VideoParams;
  9. import com.backendsys.modules.sdk.klingai.service.KLingService;
  10. import com.backendsys.modules.sdk.klingai.utils.KLingUtil;
  11. import io.swagger.v3.oas.annotations.Operation;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.web.bind.annotation.GetMapping;
  14. import org.springframework.web.bind.annotation.PostMapping;
  15. import org.springframework.web.bind.annotation.RequestBody;
  16. import org.springframework.web.bind.annotation.RestController;
  17. import reactor.core.publisher.Mono;
  18. @RestController
  19. public class KLingDemoController {
  20. @Autowired
  21. private KLingUtil kLingUtil;
  22. @Autowired
  23. private KLingService klingService;
  24. @Anonymous
  25. @Operation(summary = "获取接口Token")
  26. @GetMapping("/api/klingai/getToken")
  27. public String getToken() {
  28. return kLingUtil.getToken();
  29. }
  30. @Anonymous
  31. @Operation(summary = "6-1 查询账号下资源包列表及余量")
  32. @GetMapping("/api/klingai/queryAccountCosts")
  33. public Result queryAccountCosts() {
  34. Mono<KLResponse> responseMono = klingService.queryAccountCosts();
  35. KLResponse response = responseMono.block();
  36. System.out.println("同步结果: " + response);
  37. System.out.println("同步结果 (data): " + response.getData());
  38. return Result.success().put("data", response);
  39. }
  40. @Anonymous
  41. @Operation(summary = "2-1【图像生成】创建任务 (同步)")
  42. @PostMapping("/api/klingai/generationImage")
  43. public Result generationImage(@RequestBody KLGenerationImageParams params) {
  44. Mono<KLResponse> responseMono = klingService.generationImage(params);
  45. KLResponse response = responseMono.block();
  46. System.out.println("同步结果: " + response);
  47. System.out.println("同步结果 (data): " + response.getData());
  48. return Result.success().put("data", response);
  49. }
  50. @Anonymous
  51. @Operation(summary = "2-2【图像生成】查询任务(单个)(同步)")
  52. @GetMapping("/api/klingai/queryImageTask")
  53. public Result queryImageTask(String task_id) {
  54. Mono<KLResponse> responseMono = klingService.queryImageTask(task_id);
  55. KLResponse response = responseMono.block();
  56. System.out.println("同步结果: " + response);
  57. System.out.println("同步结果 (data): " + response.getData());
  58. return Result.success().put("data", response);
  59. }
  60. @Anonymous
  61. @Operation(summary = "2-2【图像生成】查询任务(单个)(异步)")
  62. @GetMapping("/api/klingai/queryImageTaskAsync")
  63. public Result queryImageTaskAsync(String task_id) {
  64. Mono<KLResponse> responseMono = klingService.queryImageTask(task_id);
  65. responseMono.subscribe(response -> {
  66. System.out.println("异步结果: " + response);
  67. System.out.println("异步结果 (data): " + response.getData());
  68. });
  69. return Result.success();
  70. }
  71. @Anonymous
  72. @Operation(summary = "3-1【文生视频】创建任务 (同步)")
  73. @PostMapping("/api/klingai/text2Video")
  74. public Result text2Video(@RequestBody KLText2VideoParams params) {
  75. Mono<KLResponse> responseMono = klingService.text2Video(params);
  76. KLResponse response = responseMono.block();
  77. System.out.println("同步结果: " + response);
  78. System.out.println("同步结果 (data): " + response.getData());
  79. return Result.success().put("data", response);
  80. }
  81. @Anonymous
  82. @Operation(summary = "3-2【文生视频】查询任务(单个)")
  83. @GetMapping("/api/klingai/queryText2VideoTask")
  84. public Result queryText2VideoTask(String task_id) {
  85. Mono<KLResponse> responseMono = klingService.queryText2VideoTask(task_id);
  86. KLResponse response = responseMono.block();
  87. System.out.println("同步结果: " + response);
  88. System.out.println("同步结果 (data): " + response.getData());
  89. return Result.success().put("data", response);
  90. }
  91. @Anonymous
  92. @Operation(summary = "3-4【图生视频】创建任务")
  93. @PostMapping("/api/klingai/image2Video")
  94. public Result image2Video(@RequestBody KLImage2VideoParams params) {
  95. Mono<KLResponse> responseMono = klingService.image2Video(params);
  96. KLResponse response = responseMono.block();
  97. System.out.println("同步结果: " + response);
  98. System.out.println("同步结果 (data): " + response.getData());
  99. return Result.success().put("data", response);
  100. }
  101. @Anonymous
  102. @Operation(summary = "3-5【图生视频】查询任务(单个)")
  103. @GetMapping("/api/klingai/queryImage2VideoTask")
  104. public Result queryImage2VideoTask(String task_id) {
  105. Mono<KLResponse> responseMono = klingService.queryImage2VideoTask(task_id);
  106. KLResponse response = responseMono.block();
  107. System.out.println("同步结果: " + response);
  108. System.out.println("同步结果 (data): " + response.getData());
  109. return Result.success().put("data", response);
  110. }
  111. }