您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

给API命名的七种优秀实践

时间:2023-02-16 16:00:47  来源:51CTO  作者:陈峻
本文通过展示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种优秀实践。

1.使用正斜杠

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

下面是一个典型的例子:

​https://example.com/books/authors​

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

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

好的命名:https://example.com/api/getBooks

欠佳的命名:http://example.com/api/books

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

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

  • 好的命名:https://example.com/api/book/3
  • 欠佳的命名:http://example.com/api/books/3

4.避免使用全小写字母

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

  • 好的命名:http://example.com/api/Books/3
  • 欠佳的命名:http://example.com/api/books/3

5.使用连字符分隔单词

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

  • 好的命名:https://example.com/api/books/33/front-cover
  • 欠佳的命名:https://example.com/api/books/33/front_cover

6.不要添加文件扩展名

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

  • 好的命名https://example.com/api/books
  • 欠佳的命名:https://example.com/api/books.xml

7.版本控制

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

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

二、小结

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

原文链接:https://www.makeuseof.com/api-endpoints-naming-best-practices/

译者介绍

陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验。



Tags:API   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
中国三大运营商共同发布通过GSMA Open Gateway认证的一次性密码 API
3月26日,北京:中国三大领先的移动运营商——中国移动、中国电信和中国联通今日发布商用OTP API(一次性密码API)服务,并通过了GSMA Open Gateway认证。此次发布标志着中...【详细内容】
2024-03-26  Search: API  点击:(23)  评论:(0)  加入收藏
如何免费访问和使用Gemini API?
Gemini是谷歌开发的一个新模型。有了Gemini可以为查询提供图像、音频和文本,获得几乎完美的答案。 我们在本教程中将学习Gemini API以及如何在机器上设置它。我们还将探究各...【详细内容】
2024-02-19  Search: API  点击:(63)  评论:(0)  加入收藏
构建 Web API 的两种流行选择:REST vs GraphQL
在 RESTful 和 GraphQL API 之间的选择取决于您的具体用例。RESTful API 适用于需要高可伸缩性的简单应用程序,而 GraphQL 则适用于具有不同数据需求的复杂应用程序。简介RES...【详细内容】
2024-01-09  Search: API  点击:(66)  评论:(0)  加入收藏
FastAPI:高性能Web框架的简介与应用
正文:在当今互联网时代,构建高性能的WebAPI是许多开发人员的关注重点。而FastAPI作为一个现代、快速的Web框架,为基于标准Python类型提示的API构建提供了强大的支持。FastAPI的...【详细内容】
2023-12-27  Search: API  点击:(102)  评论:(0)  加入收藏
理解 Spark 写入 API 的数据处理能力
这张图解释了 Apache Spark DataFrame 写入 API 的流程。它始于对写入数据的 API 调用,支持的格式包括 CSV、JSON 或 Parquet。流程根据选择的保存模式(追加、覆盖、忽略或报...【详细内容】
2023-12-13  Search: API  点击:(152)  评论:(0)  加入收藏
如何在Python中使用ChatGPT API处理实时数据
译者 | 李睿审校 | 重楼OpenAI公司推出的GPT如今已经成为全球最重要的人工智能工具,并精通基于其训练数据处理查询。但是,它不能回答未知话题的问题,例如: 2021年9月之后的近期...【详细内容】
2023-12-13  Search: API  点击:(242)  评论:(0)  加入收藏
伪原创API是什么?六个角度了解伪原创API
伪原创API,听起来可能对许多人来说是一个陌生的术语。然而,在当今数字化时代,尤其是在内容创作和网络营销领域,伪原创API正逐渐崭露头角。在本文中,我将向您深入介绍伪原创API是...【详细内容】
2023-12-11  Search: API  点击:(159)  评论:(0)  加入收藏
使用FastAPI部署YOLO模型的步骤
在计算机视觉领域,You Only Look Once (YOLO) 算法已经崭露头角,成为一种改变游戏规则的算法。它承诺具有卓越准确性的实时目标检测,使其成为从监视和自动驾驶车辆到图像和视频...【详细内容】
2023-12-06  Search: API  点击:(160)  评论:(0)  加入收藏
构建强大REST API的十个最佳实践
在项目开发中,我们经常会使用REST风格进行API的定义,这篇文章为大家提供10条在使用REST API时的最佳实践。希望能够为你带来灵感和帮助。1、使用具体且有意义的资源名称选择能...【详细内容】
2023-12-06  Search: API  点击:(150)  评论:(0)  加入收藏
前端请求到后端API的中间件流程解析
在前端请求到后端API的典型流程中,经过一系列中间件的处理,确保请求的顺利处理和安全性。以下是中间件的详细解析:1. 前端请求用户在前端发起请求,包括请求的URL、参数、以及其...【详细内容】
2023-12-06  Search: API  点击:(125)  评论:(0)  加入收藏
▌简易百科推荐
Meta如何将缓存一致性提高到99.99999999%
介绍缓存是一种强大的技术,广泛应用于计算机系统的各个方面,从硬件缓存到操作系统、网络浏览器,尤其是后端开发。对于Meta这样的公司来说,缓存尤为重要,因为它有助于减少延迟、扩...【详细内容】
2024-04-15    dbaplus社群  Tags:Meta   点击:(1)  评论:(0)  加入收藏
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(3)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(8)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(15)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(11)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(8)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(14)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(10)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(12)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(13)  评论:(0)  加入收藏
站内最新
站内热门
站内头条