All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.jhipster.config.apidoc.customizer.JHipsterSwaggerCustomizer Maven / Gradle / Ivy

Go to download

Server-side library used by applications created with the JHipster generator, see https://www.jhipster.tech/ for more information on JHipster

There is a newer version: 3.9.1
Show newest version
/*
 * Copyright 2016-2020 the original author or authors from the JHipster project.
 *
 * This file is part of the JHipster project, see https://www.jhipster.tech/
 * for more information.
 *
 * 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
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * 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 io.github.jhipster.config.apidoc.customizer;

import io.github.jhipster.config.JHipsterProperties;
import org.springframework.core.Ordered;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spring.web.plugins.Docket;

import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;

import static springfox.documentation.builders.PathSelectors.regex;

/**
 * A swagger customizer to setup {@link springfox.documentation.spring.web.plugins.Docket} with JHipster settings.
 */
public class JHipsterSwaggerCustomizer implements SwaggerCustomizer, Ordered {

    /**
     * The default order for the customizer.
     */
    public static final int DEFAULT_ORDER = 0;

    private int order = DEFAULT_ORDER;

    private final JHipsterProperties.Swagger properties;

    /**
     * 

Constructor for JHipsterSwaggerCustomizer.

* * @param properties a {@link io.github.jhipster.config.JHipsterProperties.Swagger} object. */ public JHipsterSwaggerCustomizer(JHipsterProperties.Swagger properties) { this.properties = properties; } /** {@inheritDoc} */ @Override public void customize(Docket docket) { Contact contact = new Contact( properties.getContactName(), properties.getContactUrl(), properties.getContactEmail() ); ApiInfo apiInfo = new ApiInfo( properties.getTitle(), properties.getDescription(), properties.getVersion(), properties.getTermsOfServiceUrl(), contact, properties.getLicense(), properties.getLicenseUrl(), new ArrayList<>() ); docket.host(properties.getHost()) .protocols(new HashSet<>(Arrays.asList(properties.getProtocols()))) .apiInfo(apiInfo) .useDefaultResponseMessages(properties.isUseDefaultResponseMessages()) .forCodeGeneration(true) .directModelSubstitute(ByteBuffer.class, String.class) .genericModelSubstitutes(ResponseEntity.class) .ignoredParameterTypes(Pageable.class) .select() .paths(regex(properties.getDefaultIncludePattern())) .build(); } /** *

Setter for the field order.

* * @param order a int. */ public void setOrder(int order) { this.order = order; } /** {@inheritDoc} */ @Override public int getOrder() { return order; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy