7种优秀的电商API命名方式

news2024/11/24 9:31:11

本文通过展示7种优秀API命名实践,来协助您创建高效的API端点,为用户提供更好的使用体验。  

如今,API已成为了现代化编程的基本组成部分。它们不但能够改善不同开发团队的协作、并鼓励创新,而且能够提高应用程序的安全性。而作为两个程序或应用之间的连接点,API端点能够起到指定资源在服务器上的确切位置的作用。

当客户端应用要向服务器端发送请求信息时,我们就需要使用API;而当服务器端接到该请求,并转呈后台数据库进行查询时,也需要调用电商API。因此,为了让用户能够更加容易地访问到资源,并获得良好的使用体验,我们需要通过高效的API,来保证各个端点之间的有效通信。

API端点是如何工作的?

如下图所示,系统的集成往往依赖于API间的通信。通常,一个系统可以使用SOAP或REST等格式,向API发送请求。服务器接收到请求后也会将响应传回给API,其中请求资源的位置就是API端点。

图片

API的工作原理

在端点处理请求之前,客户端必须提供URL、标头、以及正文。此处的标头包含了有关请求的各种元数据,以及发送到服务器的正文详细信息。同时,服务器也可以通过连接API方法实现对数据库的访问。

API端点通常使用的是诸如:GET、DELETE、PATCH或POST等HTTP方法。这些方法决定了端点如何被使用。也就是说,当客户端发送请求时,它需要约定好用怎样的方法和URL去发起请求。

当然,这些都有固定的格式可供参考。而相对来说,命名规则比较困难,无论是API端点、网络硬件设备,还是函数与变量都会被频繁用到,而且并无固定的规则可供遵循。下面,我将和您讨论如何给API规范命名,以确保API端点能够被合理使用的7种优秀实践。

图片

使用正斜杠

请始终使用正斜杠,来分隔URI资源。同时,斜杠也有助于显示资源的层次结构。


下面是一个典型的例子:

https://example.com/books/authors

图片

使用动词与名词相结合的方式

通常,名词可用来描述资源是什么,而动词则被用来描述资源能做什么。因此,您应该使用动词与名词相结合的方式,来命名API资源。下面展示了一个好的API端点命名的方法和欠佳的方法:

  • 好的命名:

    https://example.com/api/getBooks

  • 欠佳的命名:

    http://example.com/api/books

图片

使用复数名词,而不是单数

为了向用户表明服务器上有着多个资源,您应该始终以复数名词命名自己的API端点。毕竟,如果仅使用单数名词,则可能会使用户误以为该端点只提供一种资源。下面展示了一个好的API端点命名的方法和欠佳的方法:

  • 好的命名:

    https://example.com/api/book/3

  • 欠佳的命名:

    http://example.com/api/books/3

图片

避免使用全小写字母

您不应该以全小写的形式键入API端点的URL,这会降低URL的整体可读性。下面展示了一个好的API端点命名的方法和欠佳的方法:

  • 好的命名:

    http://example.com/api/Books/3

  • 欠佳的命名:

    http://example.com/api/books/3

图片

使用连字符分隔单词

请使用连字符(-)分隔组合的单词。毕竟,连字符比驼峰式(camel case,即每个单词的首字母大写,如:DataBaseUser)或下划线(_,有时会被遮挡住)更易读。同时,它们也更适合SEO的目的。下面展示了一个好的API端点命名的方法和欠佳的方法。

  • 好的命名:

    https://example.com/api/books/33/front-cover

  • 欠佳的命名:

    https://example.com/api/books/33/front_cover

图片

不要添加文件扩展名

尽管不会影响输出,但是扩展名会使得阅读资源变得比较困难。同时,它也会使得资源的灵活性大幅降低,不便于扩展名的更换与变化,甚至会导致中断。下面展示了一个好的API端点命名的方法和欠佳的方法。

  • 好的命名

    https://example.com/api/books

  • 欠佳的命名:

    https://example.com/api/books.xml

图片

版本控制

如果您将来会根据业务的更新迭代,对API进行重大更改的话,应始终根据版本号来命名自己的API端点。据此,您可以轻松地区分出,来自两到多个不同API版本的资源。如下例所示,您可以在端点名称的前面,就指示好正确的版本:

https://example.com/api/v3/books。

小结

无论是使用新的工具,还是管理现有应用,API都能够为我们简化调用的流程。而API端点的命名和结构,直接决定了API的调用性能。因此,我们有必要通过上文提到的7种优秀实践,来创建高效的API端点,为用户提供更好的使用体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/752553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用PCB加热PCB——PCB加热台

之前为了焊接一些小贴片模块,想过买一个加热台,后来一搜加热台,发现有很多卖PTC加热板的,就又想自己做一个加热台。正好这个月嘉立创又送了打样券,搞起来~ PCB加热台设计主要考虑以下几个方面: 面积功率铜…

【方法】电脑如何打开Heic文件?

存放在电脑里的Heic文件打不开?相信有小伙伴也遇到过这样的问题。 因为Heic是苹果升级到ios11之后,在拍摄照片时的默认图像存储格式,只能兼容苹果系列产品,不能在Windows电脑里打开。(Windows10 RS4开始支持该格式&am…

概率论的学习和整理18:为什么 P(至少成功1次概率) = Σ p(几何分布概率之和)----(未完成)

我们计算几何概率时,会很容易发现这么一个特点 我们很容易计算 试验n次,连续成功概率试验n次,连续失败概率试验n次,至少成功1次概率试验n次,最后一次成功概率试验n次,成功k次概率试验n次,累计成…

python3的全局解释器锁是什么意思?有什么要注意的?

Python中的全局解释器锁(Global Interpreter Lock,GIL)是一种机制,用于确保在任何给定时间只有一个线程执行Python字节码。GIL是由Python解释器实现的,对于CPython解释器来说是存在的,其他一些Python解释器…

[chatgpt+Azure]unity AI二次元小女友之使用微软Azure服务实现RestfulApi->语音识别+语音合成

1.简述 如题所述,这个小项目是在unity引擎端,使用了chatgpt微软azure的一个AI二次元女友对话的项目,实现原理也比较简单,即在unity端实现AI二次元女友的交互界面,接入chatgpt-3.5-turbo的api接口,借助chatg…

探讨餐饮行业油烟污染与治理措施

安科瑞 华楠 摘 要: 近年来我国餐饮行业油烟污染已成为城市大气污染的主要来源之一。如今环境问题日益突出严重制约到人们的身体健康,需要引起重视采取一系列有效的措施来治理餐饮行业的油烟污染。 关键词:餐饮业;污染&#xf…

STM32驱动ADS1256串口输出-AD转换

STM32驱动ADS1256串口输出-AD转换 ADS1256ADS1256简介芯片特点引脚说明模块相关寄存器与命令相关程序初始化 实验效果接线实验现象 ADS1256 ADS1256简介 ADS1256是TI推出的一款微功耗、高精度、8 通道、24 位高性能模数转换器。该芯片还带有4个可编程的I/O口、输入缓冲器和可编…

Spring依赖注入Bean类型的8种情况详解

1、普通对象 这没什么好说的,大家都这么用的,比如需要用到 UserService,直接 Autowired 就可以了。 Autowired private UserService userService;2、Collection 及其子接口 除了支持注入一个单一的对象之外,Autowired 还支持注…

100天精通Golang(基础入门篇)——第16天:深入解析Go语言包的使用和包管理

🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《I…

java微信公众号新建草稿并发布

java实现公众号发起新建草稿,并且发布得到文章链接首先要先去微信公众号的设置与开发–基础设置 查看公众号的各个参数,这里我是存储到数据库,方便后期使用,实体类如下: Data public class WeChatOfficial {private st…

蛙色Web3D编辑器全面更新,会员能力解析

导语: 在数字化时代,创意设计和虚拟展示成为了营销领域的关键。然而,传统的创作方式往往需要复杂的软件和技术支持,给用户带来了诸多麻烦。 幸运的是,蛙色Web3D编辑器作为一款领先的在线编辑工具,通过全面…

Sentieon | 每周文献-Epidemiology-第五期

流行病学系列文章-1 标题(英文):Rare Variants in Inborn Errors of Immunity Genes Associated With Covid-19 Severity标题(中文):与Covid-19严重程度相关的免疫基因先天性缺陷的罕见变异发表期刊:《Fron…

背包问题学习笔记

笔记,不是博客,所以就只是粗略的写写 背包问题状态设置 1.小于等于某值,一般用于求在限制背包体积内的情况求解 状态设置 F(n) 表示此时的背包体积小于等于n,F数组初始化为0即可 例题:423. 采药 - AcWing题库 2.恰…

用Python采用Modbus-Tcp的方式读取485电子水尺数据

README.TXT 2023/6/15 V1.0 实现了单个点位数据通信、数据解析、数据存储 2023/6/17 V2.0 实现了多个点位数据通信、数据解析、数据存储 2023/6/19 V2.1 完善log存储,仅保留近3天的log记录,避免不必要的存储;限制log大小,2MB。架…

C#生成类库dll以及调用实例

本文讲解如何用C#语言生成类库并用winform项目进行调用 目录 创建C#类库项目 Winform调用dll 创建C#类库项目 编写代码 using System.Threading;namespace ClassLibrary1 {public class Class1{private Timer myTimer = null;//定义定时器用于触发事件//定义公共的委托和调…

HW5300V3-ISCSI存储运维,看这一篇就够了01——流程图

一、存储使用流程图 二、块存储-配置流程图

【Hippo4j源码的方式安装部署教程】

🚀 线程池管理工具-Hippo4j 🚀 🌲 AI工具、AI绘图、AI专栏 🍀 🌲 如果你想学到最前沿、最火爆的技术,赶快加入吧✨ 🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者&#…

Vue3 + Ts + Vite —— 项目封装使用交互式 彩屑纷飞 示例 (亲测可用、复制即展示)

目录 🪂 演示 🛹 目录树 🐔 安装 🤖 global.d.ts 😷 zkConfettiCanvas.vue 🌍 confetti.ts 🎋 confettiIndex.ts 😷 index.vue 🥰😉 谢谢观看 &…

哪款蓝牙耳机通话清楚,几款拥有通话降噪技术的骨传导耳机分享

嘿,你是音乐爱好者吗?还是热衷于锻炼身体?那么你一定不能错过骨传导耳机!这种神奇的耳机通过骨头的振动来传递声音,绝不同于传统的耳道或鼓膜传播方式。你可保持对周围环境的警觉,同时避免对你的听力造成任…

【雕爷学编程】Arduino动手做(149)---MAX9814咪头传感器模块5

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…