illm
illm

Reputation: 197

Swagger Springfox annotations not working

These are the method headers for the sample application I'm trying to make. Unfortunately I don't see the @ApiOperation or @ApiResponse or @ApiResponses annotations taking effect. I also have a sample class and an Application class(which contains swagger configuration info and the like)

@Api(value = "/v1/", description = "Test API", produces = "application/json")
@RestController
@RequestMapping("/v1/")
class SampleRestController {

     @ApiResponses(value = {
            @ApiResponse(code = 200, message = "Successfully added"),
            @ApiResponse(code = 416, message = "List is empty") })
   @RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE, value = "samples/{sb}",
    method = RequestMethod.GET)
   public Map<String, String> sbs(@PathVariable("sb") String sb) {

    }  

   @ApiOperation(
      value = "Seeing where this shows up",
      notes = "we should see this in the implememtation notes",
      response = Sample.class,
      httpMethod = "GET"
    )
        @ApiResponses(value = {
            @ApiResponse(code = 200, message = "Successfully added"),
            @ApiResponse(code = 416, message = "List is empty") })

   @RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE, value = "samples/{pb}",
    method = RequestMethod.GET)
   public Sample ps(@PathVariable String pb) {

   }

   @RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE, value = "samples",
    method = RequestMethod.GET)
   public Collection<Map<String, String>> cs(@RequestParam(value = "cid", required = true, defaultValue = "")
    String cid) {

   }


}

Here is the relevant portion of my swagger json

{"swagger":"2.0","info":{"description":"All about the Samples","title":"Samples API","contact":{},"license":{}},"host":"localhost:8080","basePath":"/","tags":[{"name":"sample-rest-controller","description":"Sample Rest Controller"}],



"paths":{


"/v1/samples":{"get":{"tags":["sample-rest-controller"],"summary":"cs","operationId":"csUsingGET","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"cid","in":"query","description":"cid","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Collection«Map«string,string»»"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},


"/v1/samples/{pb}":{"get":{"tags":["sample-rest-controller"],"summary":"ps","operationId":"psUsingGET","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"pb","in":"path","description":"pb","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Sample"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},


"/v1/samples/{sb}":{"get":{"tags":["sample-rest-controller"],"summary":"sbs","operationId":"sbsUsingGET","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"sb","in":"path","description":"sb","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"type":"object","additionalProperties":{"type":"string"}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}},

I'm using springfox-swagger2 version 2.1.1 and I'm viewing my UI through the default UI provided by swagger at their live demo app.

Can someone tell me what I'm doing wrong? Thanks!

Upvotes: 0

Views: 3557

Answers (1)

illm
illm

Reputation: 197

I was playing around and changed my import from

import com.wordnik.swagger.annotations.;

to

import io.swagger.annotations.;

and all the annotations appear to work. So, looks like the com.wordnik.swagger.annotations import no longer works, or at least doesn't work properly?

Confirmed by Dilip Krish here

Upvotes: 5

Related Questions