Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Whitelabel Error Page Swagger

Bom dia pessoal, estou tendo problemas com a implementação do Swagger no meu pequeno microserviço, está dando o seguinte erro quando tento puxar a swagger-ui.html, segue o erro :

"" Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.

Thu Dec 07 10:56:57 BRT 2023 There was an unexpected error (type=Not Found, status=404). ""


Dependência:

org.springdoc springdoc-openapi-ui 1.7.0

Classe Main:

@SpringBootApplication public class DemoApplication {

public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
} 

}


Classe Controller:

@RestController @RequestMapping("/v1/users") public class UserController {

@Autowired
private UserService userService;

@GetMapping
public ResponseEntity<Iterable<UserModel>> getUsers() throws Exception {
    return ResponseEntity.ok(userService.getUsers());
}

@GetMapping("/{id}") 
public ResponseEntity<UserModel> getUser(@PathVariable Long id) throws Exception {
    return ResponseEntity.ok(userService.getUser(id));
}

@PostMapping
 public ResponseEntity<UserModel> create(@RequestBody @Valid UserDTO userDto) throws Exception {
    return ResponseEntity.status(HttpStatus.CREATED).body((userService.createUser(userDto)));
}

@PutMapping("/{id}")
public ResponseEntity<UserModel> update ( @RequestBody @Valid @PathVariable Long id, UserDTO userDto ) throws Exception {
    return ResponseEntity.ok(userService.updateById(id, userDto));
}

@DeleteMapping("/{id}")
public ResponseEntity<UserModel> delete ( @PathVariable Long id, UserDTO userDto ) throws Exception {
    return ResponseEntity.ok(userService.deleteById(id, userDto));
}

}

2 respostas

E aí, Kaique! Beleza?

Olha só, uma solução que pode resolver esse pepino é criar um handler para lidar com os erros de forma mais específica. Dá uma olhada nesse código aqui:

import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class CustomErrorController implements ErrorController {

    @RequestMapping("/error")
    public String handleError() {
        // redireciona pra página de erro customizada, se você tiver uma
        return "error";
    }

    @Override
    public String getErrorPath() {
        return "/error";
    }
}

Basicamente, essa classe CustomErrorController implementa o ErrorController e mapeia o caminho /error. Isso deve ajudar a dar um jeito nesse erro 404 que tá aparecendo.

Além disso, se você tiver uma página de erro customizada, é só ajustar o retorno dentro do método handleError. Dá uma testada e vê se resolve o problema aí no seu Swagger.

solução!

Olá bom dia, resolvi o pepino meu amigo, o problema estava na dependência, estava fazendo a implatação errada no POM.xml.

Estava usando esta: org.springdoc springdoc-openapi-ui 1.7.0

Mudei para essa: org.springdoc springdoc-openapi-starter-webmvc-ui 2.3.0

Depois que fiz essa alteração deu tudo certo agora, obrigado pela resposta!!!