[Swagger] [Android]使用生成的模型时的最佳做法

时间:2018-07-16 12:27:30

标签: android swagger swagger-codegen

我的团队开始在我们的新项目中大摇大摆。我有一个问题,我们应该在应用程序中依赖于如此庞大的实体吗?

例如:

  

“状态”是SwaggerUser实体的字段,类型为布尔值。确实是   主动和错误均为无效

如果我们直接在整个应用程序中使用SwaggerUser,例如:

if(user.status){
        //do something
    }else{
        //do something else 
    }

一开始它的效果很好。

几周后,系统发生了变化,“状态”现在变为整数。

  

0无效,-1被删除,1活跃

现在我们需要使用上面的代码块来重构每个地方,我认为这很糟糕。我们的结构取决于外部事物 因此,我决定编写自己的实体,并使用映射器将数据从Swagger实体映射到我自己的实体,例如:

class SwaggerUser{
    //other attributes
    boolean status;
}

class MyUser{
    Status status;
}

enum Status{
    ACTIVE(1), DEACTIVE(0), DELETE(-1)
}

class UserMapper{
    public static MyUser map(SwaggerUser swaggerUser){
        //code convert here
        return myUser;
    }
}

现在的代码逻辑可以是这样的:

swith(status){
    ACTIVE:
        //do smth with active
        break;
    DEACTIVE:
        //do smth with deactive
        break;
    DELETE:
        //do smth with delete
        break;
}

我相信,当Swagger的实体更改时,这种方法可以帮助我们保护代码结构免遭破坏。我想分享我的经验,并听取开发人员在处理此案时的经验。如果您有更好的主意,请分享。谢谢

0 个答案:

没有答案