API参数规范有哪些

技术API参数规范有哪些这篇文章主要讲解了“API参数规范有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“API参数规范有哪些”吧!【强制】字段名称用小驼峰风格【强制

本文主要讲解“什么是API参数规范”,简单明了,易学易懂。请跟随边肖的思路,一起学习学习“API参数规范是什么”!

00-1010

【强制】字段名称用小驼峰风格

服务API的返回值强制进行一般打包,如Response。

回应的作用:

统一方法指示API调用是否成功。

当应用编程接口调用失败时,统一格式会反馈错误代码和错误消息。

统一响应易于重用调用者的经验和集成框架。

作为API调用方,它的编码吸引力很简单:

API调用是否成功;

当呼叫不成功时,提示副本是什么;

打电话的人不想:

不在乎API有多牛逼。

不要在意API可能抛出的各种异常,因此要做各种异常处理。

论当前回应的不统一

[新业务][强制]使用架构组定义的统一响应:zcyresponse。

目前业务端有自定义的Result/Response,风格和功能类似。有更好的设计可以推荐给架构组进行集成,以防止他们打开重复的新定义。

【强制】Service API返回值必须使用Response包装

错误做法

AbstractClass的缩写为脓肿类;

condi的缩写;命名为condi

这种任意缩写严重降低了代码的可读性。

00-1010 MAPK,V机制非常灵活,但这样的灵活性有巨大的负面影响。

Map的数据描述是模糊的,调用者和实现者之间需要有一个隐式的契约来解释支持哪些键以及每个键的值是什么类型。增加了双方的使用复杂度。

MapK,V无法验证。此外,第1条使用的复杂性使得在使用中非常容易出错。

带有映射类型字段的保留扩展性的设计并不优雅。

注意:参数的调用者自定义数据部分允许映射。API提供者不关心,不解析,只透明地传输。

00-1010正确练习

分页,以DTO模式包装查询条件。

双序列化的特点:

在Dubbo API的POJO类中,uid是不一致的:没关系。

在duoapi的POJO类中,字段的数量是不一致的:没关系,只要字段名和类型一致,数据就可以成功反序列化。

发送方的字段比接收方多:没关系。

发送方的字段比接收方少:没关系。

1 responsepagepaging XXX(query toq)错误的做法

1 responsepagepagingxxx(string name,Stringcode,LongorgId,LongcreatorId,IntegerpageNo,nb

sp;Integer PageSize)

以上错误实践缺点:
1、对于调用方来说,无论以什么条件查询,都需要逐个条件传参。
2、API对扩展不友好,一旦想增加查询条件,API就不兼容。

【推荐】DTO字段设置JSR303 Annotation进行基础校验

  • 正确实践

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

感谢各位的阅读,以上就是“API参数规范有哪些”的内容了,经过本文的学习后,相信大家对API参数规范有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/97032.html

(0)

相关推荐

  • 将来时态的5种句型,写出五个将来时和过去时的句子

    技术将来时态的5种句型,写出五个将来时和过去时的句子首先厘清时态的概念将来时态的5种句型,时和态是分开的。时,分为现在,过去,将来,过去将来。一共四个时。态,分为一般,进行,完成,完成进行。一共四个态。
    虚拟语气的本质就

    生活 2021年10月20日
  • GBase8s数据库有什么特点

    技术GBase8s数据库有什么特点这篇文章主要讲解了“GBase8s数据库有什么特点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“GBase8s数据库有什么特点”吧!注意

    攻略 2021年11月12日
  • 刘羽冲偶得古兵书翻译,刘羽冲偶得古兵书 赏析

    技术刘羽冲偶得古兵书翻译,刘羽冲偶得古兵书 赏析看看刘羽冲的表现:他偶然得过一部古兵书,苦读了一年左右,自己感觉可以统领十万军兵冲锋陷阵了刘羽冲偶得古兵书翻译。正巧当时乡里出现土匪,刘羽冲就自己训练乡兵与土匪们打仗,

    生活 2021年10月29日
  • Maven:解决IDEA无法下载源码

    技术Maven:解决IDEA无法下载源码 Maven:解决IDEA无法下载源码通过点击进IDEA反编译的代码文件处下载源代码Sources。IDEA提示报错,无法下载源代码。解决办法:
    mvn depe

    礼包 2021年11月22日
  • 午餐肉怎么吃,火腿肠和午餐肉的区别在哪里

    技术午餐肉怎么吃,火腿肠和午餐肉的区别在哪里午餐肉和火腿肠的区别 很多妈妈都分不清火腿肠与午餐肉,觉得都差不多,但其实他们有很大的不同午餐肉怎么吃。午餐肉是一种罐装的压缩肉糜大多用猪肉或牛肉等肉类来做。在吃的时候,把午餐

    生活 2021年10月26日
  • dya 2.c++语法

    技术dya 2.c++语法 dya 2.c++语法构造函数 用途:用来初始化类对象的数据成员; 构造函数和类名相同,没有返回值,可以有多个构造函数 不同的构造函数形参数量或者类型要有所区别

    礼包 2021年12月2日