Skip to content
This repository has been archived by the owner on Nov 21, 2020. It is now read-only.

Latest commit

 

History

History
69 lines (52 loc) · 1.94 KB

response.md

File metadata and controls

69 lines (52 loc) · 1.94 KB

HTTP响应实体的封装

为了方便前端的开发,后端同学往往都需要写接口文档,而我们可以借助丝袜哥(Swagger)可以很方便的生成接口文档,同时借助本工具可以更详细的生成响应字段信息,或字段加密功能

如何使用丝袜哥

假设有一个视图对象

public class DemoVO implements Serializable {

    /**
     * 对需要加密或抹掉的字段使用 {@link Sealed} 注解
     */
    @Sealed
    private String key;

    private Integer count;

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }
}

控制器示例代码

@RestController
@RequestMapping("/demo")
public class DemoController extends BaseController {

    private static final DemoVO DEMO_VO = new DemoVO();

    static {
        DEMO_VO.setCount(233);
        DEMO_VO.setKey("secret key");
    }

    /**
     * 在 {@link BaseController} 类中封装了很多 `parseResult` 方法,同时也建议使用 parseResult 方法
     */
    @GetMapping("/foo")
    public Response<DemoVO> foo() {
        // 最后一个参数表示是否对对象字段进行加密
        return parseResult("success", "error", DEMO_VO, false);
    }

    @GetMapping("/bar")
    public Response<DemoVO> bar() {
        return new Response<DemoVO>().setCode(200).setMsg("success").setData(DEMO_VO).encode();
    }
}

默认的字段加密器仅支持 md5 sha1 sha256 三个加密方法,如果有使用其他加密方法的需求请继承 FieldEncoder 类并重写 encodeField 方法,然后在主类的 main 方法中调用 BootConfig.setFieldEncoder