SwaggerHandler.java 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package com.ruoyi.gateway.handler;
  2. import java.util.Optional;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.http.HttpStatus;
  5. import org.springframework.http.ResponseEntity;
  6. import org.springframework.web.bind.annotation.GetMapping;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RestController;
  9. import reactor.core.publisher.Mono;
  10. import springfox.documentation.swagger.web.SecurityConfiguration;
  11. import springfox.documentation.swagger.web.SecurityConfigurationBuilder;
  12. import springfox.documentation.swagger.web.SwaggerResourcesProvider;
  13. import springfox.documentation.swagger.web.UiConfiguration;
  14. import springfox.documentation.swagger.web.UiConfigurationBuilder;
  15. @RestController
  16. @RequestMapping("/swagger-resources")
  17. public class SwaggerHandler
  18. {
  19. @Autowired(required = false)
  20. private SecurityConfiguration securityConfiguration;
  21. @Autowired(required = false)
  22. private UiConfiguration uiConfiguration;
  23. private final SwaggerResourcesProvider swaggerResources;
  24. @Autowired
  25. public SwaggerHandler(SwaggerResourcesProvider swaggerResources)
  26. {
  27. this.swaggerResources = swaggerResources;
  28. }
  29. @GetMapping("/configuration/security")
  30. public Mono<ResponseEntity<SecurityConfiguration>> securityConfiguration()
  31. {
  32. return Mono.just(new ResponseEntity<>(
  33. Optional.ofNullable(securityConfiguration).orElse(SecurityConfigurationBuilder.builder().build()),
  34. HttpStatus.OK));
  35. }
  36. @GetMapping("/configuration/ui")
  37. public Mono<ResponseEntity<UiConfiguration>> uiConfiguration()
  38. {
  39. return Mono.just(new ResponseEntity<>(
  40. Optional.ofNullable(uiConfiguration).orElse(UiConfigurationBuilder.builder().build()), HttpStatus.OK));
  41. }
  42. @SuppressWarnings("rawtypes")
  43. @GetMapping("")
  44. public Mono<ResponseEntity> swaggerResources()
  45. {
  46. return Mono.just((new ResponseEntity<>(swaggerResources.get(), HttpStatus.OK)));
  47. }
  48. }