首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

API的性能约定

API的性能约定 为什么 API 必须遵守性能约定呢?因为应用程序的主要结构可能取决于 API 是否遵守了这样的性能约定。程序员根据性能期望选择 API、数据结构和整个程序结构。...如果预期或性能严重错误,程序员不能仅仅通过调优 API 调用来恢复,而是必须重写程序的主要部分。 实际上, 明确性能约定的程序较难与不遵守性能约定的APi相配合。...API 要在新版本和移植发布时提供一致的性能约定 一个新的实验性 API 也会吸引某些用户。此后,更改性能约定肯定会激怒开发人员,并可能导致他们重写自己的程序。...一旦 API 成熟,性能约定的不变性就很重要了。事实上,大多数通用 API (例如 libc)之所以变得如此,部分原因在于它们的性能约定在 其API 发展的过程中是稳定的。...每次应用程序绑定到动态库或在操作系统接口上时,都需要验证组合的正确性和API的性能约定。 诚然,API的性能约定没有功能正确性约定那么重要,但是软件系统的核心体验往往取决于它。

49520

性能约定:API 限速

根据 API 的需要,可以根据各种因素(如用户 ID、 IP 地址或特定类型的 API 调用)来实现速率限制。...API限速的主要作用 API 速率限制能够防止DoS攻击,确保API对合法用户开放;同时,它还能公平分配资源,降低运营成本,并有效管理第三方API的计费和配额,避免意外费用。...防止拒绝服务(DoS)攻击: 正如商场可能会限制进入以防止过度拥挤一样,速率限制可以防止恶意用户用过多的请求淹没 API,从而导致拒绝服务攻击。这使得 API 对合法用户可用。...第三方 API 计费: 当 API 作为第三方服务的一部分使用时,速率限制对于管理计费和使用配额是至关重要的。它确保用户保持在分配的使用限制内,避免意外的费用。...如果 bucket 没有令牌,请求将被拒绝,从而确保 API 不会过载。 每个令牌表示发送一定数量数据的权限(如 API 请求)。

13010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    elasticsearch API约定(二)

    前面我们介绍了一些REST API的基本约定,包括多个索引以及索引名称中的Date Math支持,本文我们来继续上文的话题,主要来看看公共参数和URL访问控制。...本文是Elasticsearch系列的第六篇,阅读前面的文章,有助于更好的理解本文 ---- 公共参数 下面这些选项可以应用于Elasticsearch中所有的REST API。...Parameters REST参数(使用HTTP时,映射到HTTP URL参数)遵循使用下划线的约定。...Number Values 所有的REST API都支持在原生的JSON number基础之上,将numbered parameters作为字符串来提供。...Content-Type Requirements 必须使用Content-Type头信息指定请求正文中发送的内容类型,Content-Type的值必须映射到API支持的一种格式,大多数API支持JSON

    82420

    Kafka核心API——AdminClient API

    这些客户端通过API与Kafka进行集成,Kafka的五类客户端API类型如下: AdminClient API:允许管理和检测Topic、broker以及其他Kafka实例,与Kafka自带的脚本命令作用类似...Producer API:发布消息到1个或多个Topic,也就是生产者或者说发布方需要用到的API Consumer API:订阅1个或多个Topic,并处理产生的消息,也就是消费者或者说订阅方需要用到的...API Stream API:高效地将输入流转换到输出流,通常应用在一些流处理场景 Connector API:从一些源系统或应用程序拉取数据到Kafka,如上图中的DB ---- 创建工程 在接下来的篇章中将会演示...AdminClient API的具体使用,其余的API则会在后续的文章中进行介绍。...显然,操作AdminClient API的前提是需要创建一个AdminClient实例。

    2.6K10

    重构 - 设计API的扩展机制

    1.前言 上篇文章,主要介绍了重构的一些概念和一些简单的实例。这一次,详细的说下项目中的一个重构场景--给API设计扩展机制。目的就是为了方便以后能灵活应对需求的改变。...看了《JavaScript设计模式与开发实践》,用策略模式对以前的表单验证函数进行了一个重构。下面进行一个简单的分析。...因为调用方式就不方便,很难在不改变validateForm调用方式的同时,优化重构内部的代码,又增加扩展性。...重写这个方法又不可能,因为有个别的地方已经使用了这个API,自己一个一个的改不现实,所以就不修改这个validateForm,新建一个新的API:validate。...3-4.向下兼容方案 因为项目之前有使用了以前的校验API,不能一道切,在以前的API没废弃之前,不能影响之前的使用。

    89520

    重构 - 设计API的扩展机制

    1.前言 上篇文章,主要介绍了重构的一些概念和一些简单的实例。这一次,详细的说下项目中的一个重构场景--给API设计扩展机制。目的就是为了方便以后能灵活应对需求的改变。...看了《JavaScript设计模式与开发实践》,用策略模式对以前的表单验证函数进行了一个重构。下面进行一个简单的分析。...因为调用方式就不方便,很难在不改变validateForm调用方式的同时,优化重构内部的代码,又增加扩展性。...重写这个方法又不可能,因为有个别的地方已经使用了这个API,自己一个一个的改不现实,所以就不修改这个validateForm,新建一个新的API:validate。...1631f232f38332ed.jpg 1631f23612de4f37.jpg 3-4.向下兼容方案 因为项目之前有使用了以前的校验API,不能一道切,在以前的API没废弃之前,不能影响之前的使用。

    1.5K170

    用 Typescript + Composition API 重构 Vue 3 组件

    本文会将使用 JavaScript 和 Options API 构建的传统结构 Vue 3 组件,重构为使用 TypeScript 和 Composition API 的版本。...至少经验告诉我们,如果只是进行不改变组件对外行为的单纯重构,是不用改变测试的;而如果需要的话,说明你的测试并不理想,它们关注了实现细节。 1. 既有组件 我们将重构 FilterPosts 组件。...下面来着手 NewsPost 组件的重构。 3....所有测试通过,重构完成。 5. 讨论 值得注意的一点是我完全没为此次重构改变原先的单元测试。这是因为测试聚焦于组件公开行为,而非内部实现逻辑。好处就在于此。...确实这样的重构并非特别有趣,且并不为用户直接带来任何商业收益,但其确实能对开发者引发一些有意思的讨论点: 我们该使用 Composition API 还是 Options API?

    1.4K30

    API设计的核心原则

    API 应易学易用,难以滥用。同时,良好的设计应考虑到 API 的演进。 译自 What Are the Core Principles of Good API Design?...即使作为程序员,您不是在处理面向公众的 API,您仍然经常创建 API。良好的编程是模块化的,而模块之间的界限本身就是 API。...同时,值得一提的是,虽然所有的 API 都需要适当的名称,但这些名称本身是与领域相关的;例如,为量化人员编写的 API 会使用与为零售商编写的 API 完全不同的语言。...“QA 人员对 API 应该如何工作有着不同的想法,与开发者看待它的方式相比,”他说。“我经常看到开发者在不询问谁会使用 API 的情况下设计 API,结果暴露了内部域模型。”...如果确实需要,通常可以将某些内容添加到 API 中,但一旦 API 公开,就无法删除内容。

    8910
    领券