Abd*_* AK 6 swagger swagger-ui
这是我的Interface ClassA .java
@Path("/"+Paths.STORIES)
@ApiModel(value = "Name API")
@Api(value = "/stories", description = "Name API")
public interface ClassA {
@GET
@Path("/"+Paths.STORYID)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Fetch Story by ID", notes = "More notes about this method")
@ApiResponses(value = {
@ApiResponse(code = 400, message = "Invalid ID supplied"),
@ApiResponse(code = 200, message = "Invalid ID supplied"),
})
public Response getNameFromID(@PathParam("nameId") String nameId);
}
Run Code Online (Sandbox Code Playgroud)
这是我的实现类.
@Singleton
@Component
public class ClassB implements ClassA,InitializingBean{
@Override
@SuppressWarnings({ "unchecked", "rawtypes" })
public Response getNameFromID(final String nameId) {
Map NameResponse = new HashMap<String,Object>();
NameResponse.put("repsonseCode", "200");
NameResponse.put("errorCode", "");
return Response.status(200).entity(NameResponse).build();
}
}
Run Code Online (Sandbox Code Playgroud)
Application-context.xml条目
<bean id="swaggerConfig" class="com.wordnik.swagger.jaxrs.config.BeanConfig">
<property name="resourcePackage" value="com.razak.sample" />
<property name="version" value="1.0.0" />
<property name="basePath" value="http://localhost:8080/api" />
<property name="title" value="Petstore sample app" />
<property name="description" value="This is a app." />
<property name="contact" value="apiteam@wordnik.com" />
<property name="license" value="Apache 2.0 License" />
<property name="licenseUrl"
value="http://www.apache.org/licenses/LICENSE-2.0.html" />
<property name="scan" value="true" />
</bean>
Run Code Online (Sandbox Code Playgroud)
web.xml条目
<param-name>swagger.version</param-name>
<param-value>1.1</param-value>
</init-param>
<init-param>
<param-name>swagger.api.basepath</param-name>
<param-value>http://localhost:8080/api</param-value>
</init-param>
<init-param>
<param-name>swagger.security.filter</param-name>
<param-value>com.wordnik.swagger.sample.util.ApiAuthorizationFilterImpl</param-value>
</init-param>
Run Code Online (Sandbox Code Playgroud)
@Api(value = "/stories", description = "Story API") at class level and
@GET
@Path("/"+Paths.STORYID)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Fetch Story by ID", notes = "More notes about this method")
@ApiResponses(value = {
@ApiResponse(code = 400, message = "Invalid ID supplied"),
@ApiResponse(code = 200, message = "Invalid ID supplied"),
})
Run Code Online (Sandbox Code Playgroud)
当我将这些条目从接口移动到Implementation class.im能够访问swagger.swagger中的休息端点正在工作.但是当我将该注释放在接口本身时.它不起作用.
这是一个悬而未决的问题:https ://github.com/wordnik/swagger-core/issues/562
还有一个未解决的问题来记录如何覆盖默认扫描仪:https://github.com/wordnik/swagger-core/issues/513
我还没有尝试过这个,但我认为这两个问题的解决方案都可以在这个解决方案中找到: https ://github.com/wordnik/swagger-core/wiki/Java-Setup-for-Spring---Jersey ---JAX-RS
诀窍是让 Swagger 使用 ReflectiveJaxrsScanner 而不是 DefaultJaxrsScanner。
| 归档时间: |
|
| 查看次数: |
8373 次 |
| 最近记录: |