您的API是什么情况?

免责声明:在纯REST中,API是不透明的,URL应该是在对先前请求的响应中作为链接发送的内容。 但是,我不是在讲纯REST,而是在讲更实用的API,其中涉及REST的一些概念以及通用的API最佳实践。
编写API时,它很简单。 您确定明显的资源并以以下端点结束:

/api.mycompany.com/tweet

最终,您的API必须捕获更复杂的概念,并为更复杂的资源建模,而这些资源无法用简短的单个名词表达。 现实世界中的一些示例包括:

  • 通过请求验证器资源(AWS API Gateway API)启用请求验证
  • 通过客户搜索资源执行客户搜索(Google客户搜索API)
  • 通过Check Runs资源(Github API)对代码运行强大的检查

在英语语法中,实际上是两个以某种方式连接的名词的名词称为复合名词,而在英语语法中,复合名词遵循以下三种模式之一:

  1. 一句话:理发,牙膏
  2. 两个词:雨林,冰淇淋
  3. 连字符:自尊、,子

在API世界中,可以选择不同的选项,但是为了保持一致性,API只选择一种方法并坚持使用是更好的选择。 那么,首先,从API角度来看,复合名词有哪些选择?

骆驼香烟盒

REST API

驼峰式大写是在短语中用大写字母写出每个单词的做法。 有两种变体:

  1. 首字母大写(也称为Pascal的大小写 )是首字母也是大写的地方,例如: IceCream 。 Pascal的案例在用于命名类(例如Java)的编程语言中很流行。
  2. 首字母小写是首字母始终小写的地方,例如: iceCream 。 这种方法在用于命名变量的编程语言( 再次是Java的一个很好的例子 )中很流行。 人们说骆驼的情况时, 通常是指最初的小写形式。

烤肉串盒

REST API


在Kebab案例中,各个单词之间用连字符分隔。 冰淇淋表示为冰淇淋 。 Lisp编程语言在很多URL中都使用了这种方法(例如,www.blogger.com中的每个博客文章,例如http://dublintech.blogspot.com/2018/08/oauth-20-authorisation-code- grant.html)。

你们当中的观察者会注意到,有时在技术参考中使用“ 破折号”代替“ 连字符”。 那么,有什么区别呢? 在英语语法中,连字符是用来将两个单词组合成一个单词的东西,而破折号通常是用来在句子的末尾添加某种风格上的强调的东西,例如:“我在这里可能有一个有趣的观点, 您永远不会知道”

在编程中,我们不在乎该术语是连字符还是破折号 。 它们可互换使用,表示同一件事。

kebab案例方法在Web URI中变得很流行,因为搜索引擎知道连字符代表单独的单词,并且可以正确索引URI。 搜索引擎使用的这种约定意味着连字符已成为URI的事实上的标准。

蛇皮套

在这种方法中,下划线用于分隔单词。 冰淇淋变成冰淇淋。 除类名或静态常量外,该方法在Python和Ruby中使用。

连接词

在这种方法中,单词只是连接在一起。 没有-,没有_,也没有大写 。 这在开发人员中并不受欢迎,因为它很难阅读。

蜜蜂

我们应该在API中使用camelCase,kebab-case或snake_case吗? 不幸的是, 菲尔丁先生的论文没有这么详细。 那么人们实际上在做什么呢? 并且在API的URL和JSON主体之间使用的方法是否一致。 让我们来看看。

AWS

AWS具有用于不同服务的不同API样式。 API Gateway REST API参考显示JSON负载使用驼峰式大小写
该网址不使用任何内容,只是:

/restapis/{id}/requestvalidators/{requestvalidatorId}

谷歌

令人惊讶,令人惊讶的是Google也有很多API 。 谷歌

REST API

自定义搜索API与AWS API Gateway API相似。 URL中的复合名词只是一个单词,JSON主体是驼峰式大小写。

Google Gmail API在请求正文和某些URL中使用了驼峰形式,例如, 转发地址API 。

Google youtube API有时会在网址中使用kebab大小写,例如
yt-analytics,但在其他情况下将使用单个词,例如youtubepartner。 但是,JSON有效负载是驼峰式的情况。

Github

Github API是一个很好的示例,在此我们提醒您,如果可能的话,您应该尝试通过避免复合名词来避免此问题,因为它通过使用一些创造性的名称间距来避免复合名词。

REST API

但是,还会有更多的词根出现,您会在URL中找到一个复合名词,例如使用kebab case表示的check run和使用蛇形case的JSON主体。

条纹

URL和JSON正文中的Stripe使用蛇形大小写。 例如
PaymentsIntents API 。

https://api.stripe.com/v1/payment_intents

和JSON主体...

{"id": "pi_Aabcxyz01aDfoo","object": "payment_intent","allowed_source_types": ["card"],"amount": 1099,"amount_capturable": 1000,

贝宝

贝宝(Paypal)具有比其他检查的API更多的复合名词。 用于资源(例如计费协议)的API,该API将在网址中使用kebab大小写,然后在JSON有效负载中使用蛇形大小写。

推特

Twitter在URL中使用蛇形(例如/ saved_searches /),在JSON负载中使用蛇形。

脸书

Facebook的Graph API倾向于避免URL中的资源命名,而在JSON主体中则是蛇形。

在这个阶段,您应该会有点困惑。 因此,让我们回顾一下下表。

API 网址 JSON正文
AWS API网关 没有分隔符 骆驼香烟盒
Facebook Graph API 不适用 snake_case
Github 蛇和烤肉串 snake_case
Google自定义搜索 没有分隔符 骆驼香烟盒
Google Gmail 骆驼香烟盒 骆驼香烟盒
领英 骆驼香烟盒 骆驼香烟盒
支付宝 烤肉串 snake_case
条纹 snake_case snake_case
推特 snake_case snake_case

每个人都不一样,该怎么办?

因此,整个行业缺乏一致性。 但是,有一点值得提出:

  1. 通常,最好避免使用复合名词。 在所有已检查的API(贝宝除外)中,它们均出现在5%以下的API中。 这意味着当不使用他们喜欢的方法时,开发人员不会感到沮丧。
  2. 在上面的选择中,唯一使用复合名词的API超过5%的Web API是PayPal,它们在URI中使用kebab-case。
  3. kebab-case从未在任何JSON主体中使用。 允许使用语法。 那么,什么驱动了这一趋势? 这很有可能是因为JavaScript Web UI可能是受Mos流行的客户端调用API,并且类似地,为该API提供服务的最流行的后端语言是Java,而这两个家伙在它们的任何声明中都不允许使用Java。

做决定

  1. 如果可以,请避免使用复合名词。 这并不总是可能的。 坚持使用无处不在的语言非常重要且很有帮助。 如果您有复杂的业务应用程序,则将有很多复合名词。
  2. 如果您无法避免复合名词,并且超过5%的API将涉及复合名词,请使用kebab大小写作为URI。 为什么? 因为如果您拥有复杂的业务领域,则不仅需要考虑开发人员。 许多BA,产品架构师,好奇的经理也将关注您的API。 烤肉架是每个人最容易阅读的案例。
  3. 对于JSON主体,我认为可以使用camelCase,因为这是最容易映射回JavaScript和Java代码的方法。 Google也建议在JSON中使用camelCase 。
  4. 如果必须在URI中使用camelCase,请考虑对URI使用首字母大写方法,因为URI应该标记资源而不是属性。 资源更类似于Java类,Java类也使用首字母大写格式。 JSON有效负载属性类似于使用初始小写字母的Java属性。

在下一次之前,请多保重。

翻译自: https://www.javacodegeeks.com/2018/12/whats-case-api.html

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

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

相关文章

【渝粤教育】电大中专就业指导_1作业 题库

1.()给中职生就业带来的机遇和挑战 A.发展标准化服务业 B.一带一路 C.“十三五”规划 正确 正确答案:左边查询 学生答案:C 2.最受企业欢迎的人才应具备()素质 A.文化认同、敬业精神、团队意识、创新思想、应…

家用光纤猫设备、光纤收发器和光电交换机介绍

光纤能转换网线吗?光纤是一种光导玻璃纤维,传输的是光信号,是不能直接与网线连接,需要通过光电转换设备,将光信号转换成网络信号,常见的光电转换设备有家用光纤猫设备、光纤收发器和光电交换机。接下来就由…

java 收集系统资源_方法:Linux 下用JAVA获取CPU、内存、磁盘的系统资源信息

CPU使用率:InputStream is null;InputStreamReader isr null;BufferedReader brStat null;StringTokenizer tokenStat null; // 用来分隔String的应用类try {System.out.println("Get usage rate of CUP : ");Process process Runtime.getRuntime().…

【渝粤教育】电大中专建筑施工组织作业 题库

1.对于一个建设工程而言,有代表不同利益方的项目管理,其中( )的项目管理是管理的核心。 A.供货方 B.业主方 C.设计方 D.施工方 正确 正确答案:左边查询 学生答案:B 2.下列选项中,关于施工总承包…

浅谈模拟光端机和数字光端机的区别?

光纤和光端机应用在监控领域里主要是为了解决两个问题:一是传输距离,一是环境干扰。双绞线和同轴电缆只能解决短距离、小范围内的监控图象传输问题,如果需要传输数公里甚至上百公里距离的图象信号则需要采用光纤传输方式。光端机为监控系统提…

【渝粤教育】电大中专消费者行为学30分钟交卷作业 题库

1.消费行为学的研究对象是市场商品交换活动中消费者各种心理现象和行为的产生、发展及其规律。主要表现在以下哪几方面( ) A.消费活动中营销环境 B.以上选项全选 C.消费者行为的发展变化趋势 D.消费者在消费过程中的行为和规律 E.消费者在购买行为中的心…

Java io字符流读入英文_Java IO 系列教程(四)-字符输入流(2)

本文介绍字符输入流在前面一节中,我们向一个文件中写入了一些字符,通过图片可以看出总共是6个中文字符和一个换行,总共是20个字节,可以推算出字符编码是utf-8,每个汉子占3三个字节。本文就用字符输入流来读一下。代码部…

AWS上的应用程序自动扩展–选项及其对性能的影响

扩展软件应用程序是至关重要的,以避免由于网站的客户群或需要处理大量数据集的应用程序等增加而导致工作负载增加的性能瓶颈。云服务提供商通常是访问其他应用程序的最佳方法随需应变的资源,可根据应用程序的负载变化来扩大或缩小。 1.什么是可伸缩性&a…

【渝粤教育】电大中专电子商务网站建设与维护 (14)作业 题库

1.诚信通是阿里巴巴为从事中国国内贸易的中小企业推出的会员制网上贸易服务,主要用以解决网络贸易信用问题。 ( ) A.正确 B.错误 错误 正确答案:左边查询 学生答案:未作答 2.阿里巴巴是于1999年创立的( &am…

模拟光端机和数字光端机的优缺点介绍

视频光端机在中国的发展是伴随着监控发展开始的,常用的视频监控光端机在技术实现上分为模拟调制的光端机和数字非压缩编码光端机两大类。由于在对外接口上都是标准的基带视频接口,单从外观上是很难区分模拟光端机和数字光端机。那么,模拟光端…

【渝粤教育】电大中专药事管理与法规 (2)作业 题库

1.根据《执业药师职业资格制度规定》,取得药学类相关专业大专学历,报考执业药师考试,要求在药学或中药学岗位工作的年限为()。 A.5年 B.4年 C.3年 D.6年 错误 正确答案:左边查询 学生答案:A 2.申…

mysql全文索引含义_【分针网】MySQL全文索引应用简明教程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼本文从以下几个方面介绍下MySQL全文索引的基础知识:1.MySQL全文索引的几个注意事项2.全文索引的语法3.几种搜索类型的简介4.几种搜索类型的实例全文索引的几个注意事项1.搜索必须在类型为fulltext的索引列上&#xff0c…

什么是DVI光端机?dvi光端机的优势有哪些?

DVI光端机是由DVI发送器(DVI-T)和DVI接收器(DVI-R)组成,通过一芯单模光纤传输DVI、VGA、Audip、RS232信号。接下来我们就来为大家详细介绍下什么是DVI光端机?感兴趣的朋友就一起来详细了解下吧!…

【渝粤教育】电大中专计算机职业素养 (2)作业 题库

1.职业素养是职业内在要求,是一个人在职业过程中表现出来的( )。 A.综合品质 B.职业道德 C.行业纪律 D.专业素质 正确 正确答案:左边查询 学生答案:A 2.职业素养的基本内容包括:职业道德、职业意识、职业技能和&#x…

【渝粤教育】电大中专跨境电子商务理论与实务 (9)作业 题库

1.跨境电子商务运营模式包括:M2C模式.B2C模式.C2C模式.BBC保税区模式.海外电商直邮。该说法( ) A.错误 B.正确 错误 正确答案:左边查询 学生答案:A 2.京东海外购的运营模…

mysql技术大会2020_2020年数据库技术大会助力技术提升

下半年的技术大会比较多,作为数据库技术从业人员,自然比较关注数据库技术大会,有幸参加过几次数据技术嘉年华,每次参会能遇到很多数据库领域的知名专家,认真聆听技术大咖的主题分享总能获得很多数据库发展动态和技术知…

什么是PCM综合语音复用设备?

PCM语音复用设备,中文称脉码调制,由A.里弗斯于1937年提出的,这一概念为数字通信奠定了基础,60年代它开始应用于市内电话网以扩充容量,使已有音频电缆的大部分芯线的传输容量扩大24~48倍。各国相继把脉码调制…

【渝粤题库】陕西师范大学400006 公共关系学 作业(专升本)

《公共关系学》作业 一 单项选择题 1.公共关系的主体是( )    A、组织 B、传播 C、公众 D、个人 2.被后人誉为公共关系之父的是( )    A、马斯洛 B、艾维李 C、韦伯 D、伯内斯 3.1923年出版…

什么是pdh光端机?pdh光端机产品优点介绍!

在数字传输系统中,有两种数字传输系列,一种叫“准同步数字系列”,简称PDH,也叫PDH光端机,PDH光端机是小容量光端机,PDH光端机一般是成对应用,也叫点到点应用,PDH光端机容量一般为4E1…

[渝粤教育] 中国地质大学 工业卫生技术 复习题 (2)

《工业卫生技术》模拟题 一.单选题 1.以下生产过程中有害因素属于生物因素的是() A.附着于皮毛上的炭疽杆菌 B.有毒物质 C.异常气压 D.生产性粉尘 2.以下选项属于室内污染的是() A.空气污染 B.气温变化 C.噪声污染 D.甲醛 3.存在于空气中的最大污染物是() A.阴离子 B.汽油 C…