api 获取网络使用情况_您的API是什么情况?

news/2024/12/28 11:05:41/

api 获取网络使用情况

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

/api.mycompany.com/tweet

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

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

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

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

在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表示检查运行,而在使用snake 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,而这两个家伙在它们的任何声明中均不允许。

做决定

  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

api 获取网络使用情况


http://www.ppmy.cn/news/533142.html

相关文章

汽车常识全面介绍 - 悬挂系统

乘坐舒适性的关键─悬挂系统 因为车身下方的空间使汽车看起来好像是悬浮在半空中,要如何将看似悬浮在半空中的车身与接触地面的车轮结合呢?这个结合的装置就是悬挂系统。 悬挂系统除了要支撑车身的重量之外,还负有降低行驶时的震动&#xff0…

系统架构设计应考虑的因素

摘要: 本文从程序的运行时结构和源代码的组织结构两个方面探讨了系统构架设计应考虑的各种因素,列举了系统构架设计文档应考虑的一些问题。 1. 与构架有关的几个基本概念 1、 模块(module):一组完成指定功能的语句&am…

互联网30年,泡沫如梦,一个个泡沫和风口过后,会是什么样的结局

人人都说互联网改变世界,这话没错。 但我认为互联网改变的方式,是泡沫。 资金,资源,人才因为一堆概念聚在一起,形成一个又一个的泡沫,然后泡沫破裂,大部分人失败,少数能够留下来的…

【面试题】前端人70%以上 不了解的promise/async await

前言 今天给大家分享promise,笔者将从早期的异步代码的困境、promise出现解决了什么问题、异步回调地狱的终极方案并且实现async await的核心语法,其实async/await只是generatorpromise的一个变种而已。这是坚持写博客的第三周,坚持下去事情总…

python_______request库介绍

一、requests库的七个重要方法 (1)最常用方法:requests.get(url,paramsNone,**kwargs)//对应HTTP协议的GET()操作 (请求获得URL位置的资源) ① url:拟获取页面的url链接。url:在WWW上,每一信息资源都有统一的且在网上唯一的地址&#xff0c…

前端面试常见逻辑题收集及分析

前端面试中常出现一些有趣的逻辑题,初见的时候有可能会手足无措,但实际多看几个题之后就会有一定的思考逻辑,有种打通任督二脉的感觉.以下是我个人面试经历以及网络上收集来的一些经典题目. 题目: 1.现有一个装有无限水的池塘,你手里有两个空壶,一个容积为6升,一个为5升,请问…

2020牛客暑期多校训练营(第七场)

文章目录 A Social DistancingB Mask AllocationC A National PandemicD Fake NewsG Topo CountingH DividingI Valuable ForestsJ Pointer Analysis A Social Distancing 在半径为 r r r的圆内的格点中放入 n n n个点. 使得两两距离的平方之和最大. n ≤ 8 , r ≤ 30 n\le 8,…

你可能需要的IDEA-Java开发插件

Idea开发插件 Alibaba Cloud AI Coding Assistant 阿里云智能编码插件(Alibaba Cloud AI Coding Assistant)是一款AI编程助手,它提供代码智能补全和代码示例搜索能力,帮助你更快更高效地写出高质量代码。 让我觉得比较有意思的…