Как я могу добавить текстовое поле / текстовое поле на моей странице сваггера, встроенной в Spring boot? - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь автоматически сгенерировать страницу сваггера для RestAPI в Spring Boot, используя аннотации.

Код контроллера:

@RestController
@Api(value="UserManagementAPI", produces = MediaType.APPLICATION_JSON_VALUE)
public class UserManagementController {

    @RequestMapping("/")
    public String index() {
        return "Greetings from Spring Boot!";
    }

    @ApiOperation(value="add a pro",consumes="application/json")
    @RequestMapping(value = "/getUser", method = RequestMethod.GET, produces="application/json")    
    public static List<UserDetails> getUser(@PathVariable(name="id") String id) throws UserException
    {
        return UserHelper.getUserByEmail(id);
    }

Application.java

@SpringBootApplication
@EnableSwagger2
@Configuration
@ComponentScan({ "userManagement"})
@EnableAutoConfiguration
public class Application {
@Bean
    public Docket simpleDiffServiceApi() {
        return new Docket(DocumentationType.SWAGGER_2).groupName("userManagement").apiInfo(apiInfo()).select()
                .apis(RequestHandlerSelectors.any())
                // .paths(PathSelectors.any())
                // Will also include the basic error controllers by default
                .paths(Predicates.not(PathSelectors.regex("/error")))
                // Exclude basic error controllers
                .build().pathMapping("/");
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("Business Location Service")
                .description("Spring Boot REST APIs for Business Location Service")
                .contact(new Contact("EntSol-IoT (Niche Technology Delivery Group)", "http://somewebsite.com",
                        "some@mail.com"))
                .version("1.0").build();
    }

На странице сваггера я вижу все свои API.Но есть и другие.Он показывает все возможные типы методов (например, POST, GET, PUT и т. Д.), Хотя в Controller я написал только метод GET.Другая проблема заключается в том, что на странице сваггера под API нет текстового поля, в котором я могу найти id .Может быть, я что-то упустил.Я пытался решить это в течение последних двух дней.Но не мог с собой поделать.Заранее спасибо.

Swagger Page

1 Ответ

0 голосов
/ 23 мая 2018

У меня проблема.Ваш getUser метод объявлен как static.Пожалуйста, удалите static, чтобы оно заработало.

public List<UserDetails> getUser(@PathVariable(name="id") String id) throws UserException { }

...