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; ...... } |