60 lines
2.0 KiB
Java
60 lines
2.0 KiB
Java
/**
|
|
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
|
|
* <p>
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
* <p>
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
* <p>
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package org.springblade.gateway.provider;
|
|
|
|
import lombok.AllArgsConstructor;
|
|
import org.springblade.gateway.props.RouteProperties;
|
|
import org.springblade.gateway.props.RouteResource;
|
|
import org.springframework.context.annotation.Primary;
|
|
import org.springframework.stereotype.Component;
|
|
import springfox.documentation.swagger.web.SwaggerResource;
|
|
import springfox.documentation.swagger.web.SwaggerResourcesProvider;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* 聚合接口文档注册
|
|
*
|
|
* @author Chill
|
|
*/
|
|
@Primary
|
|
@Component
|
|
@AllArgsConstructor
|
|
public class SwaggerProvider implements SwaggerResourcesProvider {
|
|
private static final String API_URI = "/v2/api-docs";
|
|
|
|
private RouteProperties routeProperties;
|
|
|
|
@Override
|
|
public List<SwaggerResource> get() {
|
|
List<SwaggerResource> resources = new ArrayList<>();
|
|
List<RouteResource> routeResources = routeProperties.getResources();
|
|
routeResources.forEach(routeResource -> resources.add(swaggerResource(routeResource)));
|
|
return resources;
|
|
}
|
|
|
|
private SwaggerResource swaggerResource(RouteResource routeResource) {
|
|
SwaggerResource swaggerResource = new SwaggerResource();
|
|
swaggerResource.setName(routeResource.getName());
|
|
swaggerResource.setLocation(routeResource.getLocation().concat(API_URI));
|
|
swaggerResource.setSwaggerVersion(routeResource.getVersion());
|
|
return swaggerResource;
|
|
}
|
|
|
|
}
|