首页 > IT职业 > IT图书 > 服务 API 设计之 ——API 参数规范

Map<K,V> 机制非常灵活,但这样的灵活却是负作用巨大。
注:参数中的调用方自定义数据部分允许使用 Map。API 提供方不关系、不解析、只透传。
分页查询,将查询条件以 DTO 方式包装。
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) |
以上错误实践缺点:
1、对于调用方来说,无论以什么条件查询,都需要逐个条件传参。
2、API 对扩展不友好,一旦想增加查询条件,API 就不兼容。
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;
......
} |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026910/viewspace-2944432/ ,如需转载,请注明出处,否则将追究法律责任。