支持URI、方法、RPC的Mock平台

本文介绍了一个Mock平台,它支持URI、方法和RPC三种方式,以应对不同开发阶段的需求。URI用于前端展示,方法用于构造特定返回值,RPC则用于自测服务间的合作。平台数据存储于数据库,并用用户ID区分,通过控制台设置。文中还详细阐述了模拟上下文配置、拦截器、代理和RPC扩展的实现过程。
摘要由CSDN通过智能技术生成

mock平台支持三种方式(URI、方法、RPC)

 

URI:当前端需要根据接口的各种状态来进行不同的展示时,而后端还没有写完完整的代码时,可以在项目开发初期通过该方式进行自定义设置接口返回结果。

 

方法:当后端需要某个方法返回某些特定的值时,而这时真实的情况又很难构造这个值时,就可以采用该方式。

 

RPC:当后端要与别的服务进行合作时,而别的服务方接口提供较慢或有问题时,可以采用该方式进行自测。

 

mock平台的数据存储可以是数据库或者其他平台等等,主要存储对应关系,key可以为URI或方法的全限定名和参数,value为具体的json结构,为了防止影响别人,用用户ID进行区分,如用户ID和key组成唯一键,这些数据是从控制台进行设置。

 

下面是具体代码过程:

模拟上下文配置,包括当前所处环境,spring容器,存储当前用户登陆状态的ThreadLocal,类方法参数拼接key的方法,获取mock平台数据的方法,平台数据存储采用数据库,以及自动生成指定类方法所代表的key的方法,方便使用者在控制台进行key-value添加。

@Configuration
public class MockContext implements ApplicationContextAware {

    private static final boolean online = !EnvUtils.isOffline();
    private static FastThreadLocal<LoginUser> fastThreadLocal = new FastThreadLocal<>();
    private static ApplicationContext instance;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        instance = applicationContext;
    }

    public static ApplicationContext getInstance() {
        return instance;
    }

    /**
     * 是否是线上环境
     */
    public static boolean online() {
        return online;
    }

    public static void set(LoginUser loginUser) {
        fastThreadLocal.set(loginUser);
    }

    public static LoginUser get() {
        return fastThreadLocal.get();
    }

    public static void remove() {
        fastThreadLocal.remove();
    }

    /**
     * 唯一url(类,方法,参数拼接)
     */
    public static String getUrl(String className, String methodName, Class<?>[] parameterTypes) {
        StringBuilder sb = new StringBuilder(className);
        sb.append(".").append(methodName);
        StringJoiner stringJoiner = new StringJoiner(",", "(", ")");
        if (parameterTypes != null) {
            for (Class<?> parameterType : parameterTypes) {
                if (pa
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值