Hike News
Hike News

Web开发规范

API设计

1、遵循RESTFul规范。

使用请求方法区分动作,使用URI区分资源。

比如用户user

  • 增:POST /users
  • 删:DELETE /users/{id}
  • 改:PUT /users/{id}
  • 查:GET /users/{id}

2、所有接口必须是幂等的。

失败重试或者重复操作时保证系统的健壮性。新增操作视情况而定,尽量幂等。

MQ消费也需要幂等。

3、基于以上两点,构建声明式API,即用户只需要关注做什么,而不需要关注怎么做。

4、前后端分离开发时,前端负责渲染和交互,后端负责数据和逻辑,不能把逻辑放在前端处理。

5、后端开发时禁止使用Map作为请求参数和数据库返回值。

微服务设计

1、为每个微服务定义一个唯一的应用编码(AppId),服务注册调用、资源管理等都要用到。

可以统一由三个字母组成,最多包含17676个微服务。

2、如果有虚拟机混部的场景,保证每个服务的端口是唯一的。

3、每次需求都有对应版本号,需求文档、产品方案、代码、部署的版本号要一致。

版本号一般构成为[大版本.小版本.修复版本]。

  • 如果不兼容之前的功能,或者功能变动较大,需要增加大版本号;
  • 如果兼容之前的功能,但是有新功能增加,加小版本号即可;
  • 如果没有增加新功能而是修复Bug,加修复版本号。

4、抛出异常的提示信息里需要携带当前服务的AppId,否则一整条调用链路排查太耗时耗力。

5、警惕上游调用方,对C端接口做好限流工作,防止被大流量压垮。

6、怀疑下游提供方,做好熔断和降级,防止被慢响应拖垮。