swagger没有显示我的控制器我试过 Postman 了,我的端点还是失灵

svmlkihl  于 2021-06-29  发布在  Java
关注(0)|答案(2)|浏览(548)

希望你们都做得很好。我试图用java和springboot作为我的框架来编写api。我使用sqlserver作为我的数据库。我做了整个配置以使连接成为可能(启用tcp/ip协议,启动sql server,在我的项目中使用sql server jar文件和dll文件,允许与sql server进行远程连接)。当我在works中的项目中执行查询并在控制台中显示数据时。但是,当我使用swagger时,没有我的用户控制器和方法,它只带来了基本的错误控制器。

我的pom文件中有swagger依赖项,主应用程序中有@enableswagger2。
这就是我使用 Postman 时发生的情况:

我不知道该怎么办,我不能尝试我的api。
在这里你可以看到我的用户控制器:

import JDBC.DAO.UsuarioDAO;
import JDBC.DTO.Usuario;
import org.springframework.web.bind.annotation.*;

import java.sql.SQLException;
import java.util.List;

@RestController
@RequestMapping("/")
@CrossOrigin(origins = "*", maxAge = 3600)
public class UsuarioResource {

   //Get usuario por rut
    @RequestMapping(method = RequestMethod.GET, value = "traerUsuario/{rut}")
    public List<Usuario> obtenerUsuarioPorRut (@PathVariable ("rut") String rut) throws SQLException {
        List<Usuario> user = new UsuarioDAO().obtenerUsuarioPorRut(rut);
        return user;
    }

    //Get todos los usuarios
    @RequestMapping(method = RequestMethod.GET, value = "allUsers")
    public List <Usuario> getUsuarios() throws SQLException {
        List <Usuario> usuarios = new UsuarioDAO().obtenerUsuarios();
        return usuarios;
    }

}

你可以看到我的网址应该是localhost:8080/whateverendpointgoeshere (当我运行我的应用程序时,它会显示running op port 8080)。
这是我用来连接数据库的connectionmanager(正如我之前所说,当我直接在ide中进行连接时,它会给我带来数据):

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionManager {
    private static Connection connection = null;
    private static String connectionString = "jdbc:sqlserver://localhost:1433; databasename=prac; integratedSecurity=true";

    public static Connection obtenerConexion() throws SQLException {
        if (connection == null)
            connection = DriverManager.getConnection(connectionString);
            return connection;
    }
}

在这幅图中,您可以看到为什么我要使用端口1433连接到sql server,我遵循tcp/ip的说明:

我的pom文件中的swagger依赖项:

<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.4.0</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.4.0</version>
        </dependency>

所以。。。我已经被困了好几天,试图找出为什么我不能达到我的终点。我会很感激你的帮助。

9q78igpj

9q78igpj1#

您需要在springboot中有swagger的配置文件。

@Configuration
public class SpringFoxConfig {                                    
    @Bean
    public Docket api() { 
        return new Docket(DocumentationType.SWAGGER_2)  
          .select()                                  
          .apis(RequestHandlerSelectors.any())              
          .paths(PathSelectors.any())                          
          .build();                                           
    }
}

在类中添加注解 @Configuration . 剩下的就和上面一样了。
重新启动服务器并点击swagger url应该可以修复它。

mbzjlibv

mbzjlibv2#

我认为,由于即使没有swagger,您也无法访问端点,这是您的包结构的一个问题。您的控制器包和所有其他组件包(如服务、存储库)应该是主类(springbootapplication.java)所在包下的子包(如果不是主类包的子包,则需要在@componentscan注解中手动添加它们。)

相关问题