Response的做用:html
做为API调用方,其编码诉求很简单:apache
调用方几不想:架构
关于当前不统一的Response框架
Map<K,V>机制很是灵活,但这样的灵活倒是负做用巨大。ui
注:参数中的调用方自定义数据部分容许使用Map。API提供方不关系、不解析、只透传。编码
分页查询,将查询条件以DTO方式包装。spa
Dubbo序列化特色:设计
1 |
Response<Page<T>> pagingXXX(QueryDTO q) |
1 |
Response<Page<T>> pagingXXX(String name, String code, Long orgId, Long creatorId, Integer pageNo, Integer PageSize) |
以上错误实践缺点:
一、对于调用方来讲,不管以什么条件查询,都须要逐个条件传参。
二、API对扩展不友好,一旦想增长查询条件,API就不兼容。code
1 2 3 |
public interface ZcyPayFacade { Result<Boolean> validTradePay(@NotNull @Valid TradePayPO tradePayPO); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
public class TradePayPO implements Serializable { @NotBlank @Length(max = 15) /** 业务交易编号(订单编号) */ private String businessTradeNo; /** * 业务渠道:1-订阅,2-CA * @see BusinessTypeEnum * * */ @NotNull @Range(min = 1, max = 2) private Integer businessType; ...... /** 商户名称(商家) */ @NotBlank @Length(max = 50) private String merchantName; /** 订单标题(即商品名称),粗略描述用户的支付目的。如“喜士多(浦东店)消费”*/ @NotBlank @Length(max = 256) private String orderSubject; /** 订单描述(即商品描述),能够对交易或商品进行一个详细地描述,好比填写"购买商品2件共15.00元"*/ @NotBlank @Length(max = 128) private String orderBody; ...... } |