从“上帝”视角看后端接口如何设计

本文探讨了后端接口设计的规范,强调了基本性、轻量性、安全性、拓展性和兼容性等方面。基本性涉及请求path、个性和公共参数的设计原则;轻量性指出客户端不应包含业务逻辑,避免金额计算;安全性涵盖接口访问者合法性、数据加密和敏感信息处理;拓展性和兼容性讨论了接口的未来适应性和版本兼容。此外,还提出了减少网络请求、接口参数优化等其他改进措施。
摘要由CSDN通过智能技术生成

这里先说说“上帝”是什么?上帝,是移动端,pc端,h5端的统称,为什么这么说呢,接口设计的最终目标,是让用户可以正常使用软硬件提供的服务。用户使用不同的端来访问接口,从而与后端发生关联关系,进而使用相关的服务。

而这些端的开发者,他们将界面与接口进行有效的结合形成一个个有机体,不同的有机体组合形成一套系统,他们使用接口,他们是顾客(自家的接口免费用,别人的接口限制或者付费用),而顾客是什么?是上帝,因此,作为“上帝”之一的移动端,有必要聊聊接口设计的东西,尽管有可能以下内容会对后端开发人员造成不适感,也要勇敢说出来。另外,也算是对接口设计思考与认知的总结。欢迎各位看官小伙伴提出一些看法,一起进步。

接口设计规范

基本性

基本性是指,接口地址符合一般性URL所具有的要素。

1.请求path
栗子

这里,以获取商品详情信息,get请求,如下:
http://www.xxx.com/Goods/getGoodsInfo?id=10025

http:是网络协议部分,该部分规定数据交互遵守的统一标准。
     现实中,可以是https,还可以是ftp或者rtmp等
xxx.com:是域名部分,该部分域名访问时,需要进行地址映射,域名->ip地址
     现实中,既可以是域名,也可以是ip地址(尤其调试阶段,各种ip地址,毕竟后端人员多,各个对接)
path:Goods/getGoodsInfo?id=10025(斜体加粗部分)
Goods:是后端功能模块,不同的功能模块,这部分对应内容有所不同。如,User信息模块,/user/getUserInfo
getGoodsInfo:是模块功能中某一具体功能对应的action(前端)或者method(后端),这里指获取商品信息的方法
    ?id=10025:?是一个特殊的分隔符,用于获取其后携带的参数,id为参数

在真实项目中,形似上述接口可能有很多,大家在使用这些接口时也习以为常,毕竟接口能正常走通。不过,不知道小伙伴们有没有发现不太合理的地方?暂且先留个问题,继续往下看

path设计原则

1.见名知意 好的path设计,使用者(开发人员或者测试人员)看到接口时,就可以很清楚的了解接口对应的功能。上述的栗子,在一定程度反映了对应的功能。以常见一些功能为栗,如下:

method Path 含义 栗子 具体说明
GET getXxxx 查找或者查询 getUserInfo 获取用户信息
POST addXxxx 提交或者增加 addOrder 增加新订单
POST modifyXxxx 修改或者更新 modifyUserInfo 修改用户信息
POST deleteXxxx 删除 deleteAddress 删除地址

这样可以减少不必要的沟通成本,记得,该沟通时一定要沟通,毕竟不是所有的设计都是那么规范。你走过的路不一定是别人的套路,有可能是血路,用同感吗?

总结,一句话,当看到接口时ÿ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值