API接口设计总结

1, 任何用户输入数据都有肯能是不可信或者不安全的, 前后端必须对接口入参中用户输入的数据进行校验, 后端参数验证可以考虑使用hibernate validation
2, 对外开放的openAPI 接口要做版本管理, 版本内的接口修改时要注意兼容性,
3, 接口要防止重复提交, 简单点,可以使用Redis防重复请求,同样的请求方,一定时间间隔内的相同请求,考虑是否过滤。转账类接口,并发不高的话,推荐使用唯一流水号作为主键或者唯一索引。
4, 设计接口时要充分考虑接口的可扩展性,适当重构接口,
5, 接口入参较多时, 考虑用结构体替代。
6, 长事务的接口, 如支付, 下单等接口,涉及业务较多, 主线流程外的业务尽量异步处理, 另外长事务可能导致死锁、回滚时间长、主从延迟等问题,开发中尽量避免大事务。
7, 调用第三方接口要考虑异常和超时处理, 以及失败重试, 失败重试可考虑用spring 的@retryable 注解
8, 一些需要缓存数据的查询接口, 为避免缓存击穿, 在查询不存在的数据时可以考虑缓存一个空数据,
9, 错误日志, 及debug日志一定要打,日志建议按照一定的规范去打印, 以便可以通过日志解析去做一些业务的异常监控
10, service 层的interface 的定义要具备功能单一性,
11, 接口耗时优化, 优先考虑是否有合理的添加索引, 另外不要想着一个sql 把所有的业务逻辑都做了, 涉及多表关联查询的, 可以拆分为多个单表查询。
12, 接口幂等性, 幂等处理优先考虑使用唯一索引。
13, 统计分析查询的接口, 巨量数据优先考虑使用olap 数据库,
14, 列表查询的接口, 巨量的数据表注意服务端分页, 建议通过注解实现服务端分页的组件, 不要手动去处理分页查询
15,接口返回建议统一封装, 合理定义对应返回的http 状态码, 业务错误码, 接口返回到前端的msg 信息注意国际化
16,涉及IO操作的接口, 注意要防止内存泄漏, 比如在finally 中记得要关闭打开的资源
17, 如果一个接口的service 层的方式超过50行, 那就要考虑优化业务的逻辑了,
18, 接口实现过程汇中,注意大文件、大事务、大对象,读取大文件时,不要Files.readAllBytes直接读取到内存,这样会OOM的,建议使用BufferedReader一行一行来。
注意一些大对象的使用,因为大对象是直接进入老年代的,会触发fullGC
19, 热点接口要考虑限流,
20, openapi 接口要考虑接口的安全性, 必须要先获取到token 和对应权限才能访问
21, 接口名称定义别想着自己能看懂, 别人也能看懂,
22, 接口测试,单元测试写不了, 总得用postman测下吧,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,651评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,468评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,931评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,218评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,234评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,198评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,084评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,926评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,341评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,563评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,731评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,430评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,036评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,676评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,829评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,743评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,629评论 2 354