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

org.treeleafj.xdoc.jfinal.JfinalHttpFramework Maven / Gradle / Ivy

The newest version!
package org.treeleafj.xdoc.jfinal;

import com.jfinal.config.Routes;
import com.jfinal.core.ConfigGetter;
import com.jfinal.core.Controller;
import org.treeleafj.xdoc.framework.AbstractHttpFramework;
import org.treeleafj.xdoc.model.ApiModule;
import org.treeleafj.xdoc.model.http.HttpApiAction;

import java.util.*;

/**
 * 基于JFinal框架,扩展api接口数据
 *
 * @auth leaf
 * @date 2019/10/20
 */
public class JfinalHttpFramework extends AbstractHttpFramework {

    @Override
    public boolean support(Class classz) {
        return Controller.class.isAssignableFrom(classz);
    }

    @Override
    public List extend(List apiModules) {

        apiModules = super.extend(apiModules);


        Routes routes = ConfigGetter.getRoutes();
        List routeItemList = routes.getRouteItemList();

        Map controllerMap = new HashMap<>();
        for (Routes.Route route : routeItemList) {
            controllerMap.put(route.getControllerClass(), route.getControllerKey());
        }

        for (ApiModule apiModule : apiModules) {
            for (int i = 0; i < apiModule.getApiActions().size(); i++) {
                HttpApiAction apiAction = (HttpApiAction) apiModule.getApiActions().get(i);
                apiAction.setJson(false);//TODO 该属性需要去掉
                apiAction.setUris(Arrays.asList(controllerMap.get(apiModule.getType()) + "/" + apiAction.getMethod().getName()));
                apiAction.setMethods(Arrays.asList("ALL"));
            }
        }

        return apiModules;
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy