swagger接口模型排序和定义顺序保持一致

时间:2025-03-16 07:06:10

支持spring

package ;

import ;
import ;
import ;
import ;
import .slf4j.Slf4j;
import .;
import ;
import ;
import ;
import ;
import ;

import ;

import static ;
import static ;

/**
 * @Auther 
 * @Date 2020/6/16
 */
@Component
@Slf4j
public class ModelSortInit implements ModelPropertyBuilderPlugin {

    @Override
    public void apply(ModelPropertyContext context) {
        Optional<BeanPropertyDefinition> beanPropertyDefinitionOpt = ();

        Optional<ApiModelProperty> annotation = ();

        if (().isPresent()) {

            annotation = (findApiModePropertyAnnotation(().get()));

        }

        if (().isPresent()) {

            annotation = (findPropertyAnnotation(().get(), ));

        }

        if (()) {

            BeanPropertyDefinition beanPropertyDefinition = ();

            if (() && ().position() != 0) {

                return;

            }

            AnnotatedField field = ();

            Class<?> clazz = ();

            Field[] declaredFields = ();

            Field declaredField;

            try {

                declaredField = (());

            }
            catch (NoSuchFieldException | SecurityException e) {

                ("", e);

                return;

            }

            int indexOf = (declaredFields, declaredField);

            if (indexOf != -1) {

                ().position(indexOf);

            }

        }
    }

    @Override
    public boolean supports(DocumentationType delimiter) {

        return (delimiter);
    }
}