独步IT界,开放API接口文档新标杆!

目录

1、简介

1.1 什么是API接口

1.2 为什么开放API接口

1.3 API接口的优势和应用领域

1.4 API接口的基本原则和设计准则

2、接口认证

2.1 认证方式和流程

2.2 API密钥的生成和管理

2.3 认证错误处理

3、接口调用

3.1 请求方法和URL规范

3.2 请求参数和格式

3.3 响应数据格式和状态码

3.4 错误处理和异常情况

4、接口权限和限制

4.1 权限控制和用户角色

4.2 访问频率限制

4.3 数据权限和访问控制

5、接口示例和文档

6、结语


1、简介

1.1 什么是API接口

API接口是指应用程序编程接口(Application Programming Interface),是一组定义和规范了不同软件组件之间交互的规则和协议。通过API接口,不同的软件模块可以相互调用和交换数据,实现功能的协同工作。API接口可以是一组函数、方法、类等形式的代码集合,也可以是一套HTTP协议规范,允许通过HTTP请求和响应的方式进行数据交互。API接口常用于提供对外开放的服务接口,使得其他开发人员或者系统可以通过API接口访问和使用相关功能或数据。

1.2 为什么开放API接口

开放API接口是为了实现功能的扩展和提供更多的服务。开放API接口可以让其他开发者使用你的软件或平台的功能,从而使你的产品能够整合到其他系统中,与其他服务进行互动。开放API接口还可以帮助企业建立生态系统,吸引更多的开发者和合作伙伴,共同推动产品的发展。开放API接口也能促进创新,让更多的人利用你的产品来开发新的应用和服务。另外,开放API接口还可以为企业带来更多的收入机会,例如通过提供付费的API服务来获得收益。总之,开放API接口能够带来更多的机会和价值,提升产品的竞争力和用户体验。

1.3 API接口的优势和应用领域

API接口的优势和应用领域:

  1. 提高系统的可扩展性和灵活性:通过API接口,不同系统之间可以进行数据交互和功能调用,使系统更容易进行扩展和集成外部服务。例如,一个电商网站可以通过API接口连接到支付系统,实现在线支付功能。

  2. 促进系统间的协作和协同工作:API接口允许不同系统之间共享数据和资源,通过互相调用接口,实现数据的传输和共享。这样可以实现系统间的协同工作,提高工作效率。例如,一个在线办公系统可以通过API接口实现与第三方日历应用的同步。

  3. 改善用户体验:API接口使得多个系统之间的交互更加顺畅和无缝。通过API接口,用户可以在不同系统间进行无缝切换,享受到更好的用户体验。例如,一个社交媒体应用可以通过API接口实现与其他应用的集成,方便用户在应用之间分享内容。

  4. 促进创新和开发:通过API接口,开发者可以利用现有的功能和数据,快速开发新的应用或功能。这样可以促进创新和开发,加速应用的推出。例如,许多大型互联网公司提供开放API接口,供开发者使用他们的数据和功能进行开发。

  5. 广泛应用的领域:API接口在许多领域都有广泛的应用,如电子商务、社交媒体、云计算、物联网等。在电子商务领域,API接口可以实现订单管理、支付功能等。在社交媒体领域,API接口可以实现用户授权登录、信息分享等。在云计算领域,API接口可以实现资源管理、自动化部署等。在物联网领域,API接口可以实现设备连接、数据采集等。

总而言之,API接口具有提高系统的可扩展性和灵活性、促进系统间的协作和协同工作、改善用户体验、促进创新和开发等优势,广泛应用于各个领域。

1.4 API接口的基本原则和设计准则

API接口的基本原则和设计准则可以概括为以下几点:

  1. 易于使用和理解:API应该简单易用,并且能够被开发者快速掌握。良好的命名和清晰的文档对于API的易用性非常重要。

  2. 一致性:API应该保持一致性,即相同类型的操作应该在不同接口中使用相同的方法和命名规则。这样可以减少学习成本,提高开发效率。

  3. 可扩展性和灵活性:API应该设计成可以轻松扩展和修改。新功能应该能够通过简单的修改现有接口或添加新接口来实现。

  4. 性能和效率:API应该高效运行,响应时间尽可能短。设计API时应考虑并发访问、缓存和数据传输等因素,以提高性能。

  5. 安全性:API应该具备安全机制,例如身份验证和访问控制。开发者可以使用令牌或API密钥来验证身份,并限制对敏感数据和操作的访问。

  6. 可靠性和稳定性:API应该具备高可靠性和稳定性,能够处理大量的请求并保持系统的正常运行。合理的错误处理和异常处理机制可以提高API的可靠性。

  7. 反馈和文档:API应该提供详细的文档和示例代码,以便开发者理解和使用。错误和异常信息应该清晰明了,方便开发者调试和排查问题。

  8. 版本控制:API的设计应该考虑版本控制,以便进行后续的迭代和升级。新版本的API应该向后兼容,或提供适当的迁移指南。

  9. 监控和统计:API应该提供监控和统计功能,例如请求次数、响应时间、错误率等指标,以便开发者了解API的使用情况和性能。

  10. 生命周期管理:API的设计和维护应该考虑全生命周期,包括开发、测试、上线、维护和废弃等阶段。及时的更新和通知可以帮助开发者跟进API的变化。

2、接口认证

2.1 认证方式和流程

开放API接口认证方式和流程可以根据具体情况而定,但一般包括以下步骤:

  1. 注册开发者账号:开发者需要在API提供方的官方网站上进行账号注册,并获得相应的开发者认证信息,例如API Key和Secret Key。

  2. 创建应用程序:开发者在注册后,在API提供方的平台上创建一个应用程序,包括给应用程序命名、描述以及设置回调URL等信息。

  3. 选择认证方式:根据API提供方的要求,选择适合的认证方式。常见的认证方式包括OAuth认证、Token认证等。

  4. 获取认证令牌:开发者通过认证方式向API提供方发送认证请求,并获得认证令牌。具体流程可能包括用户授权、访问令牌的获取等。

  5. 使用API接口:开发者使用认证令牌访问API接口,进行数据的请求和响应。

需要注意的是,不同的API提供方可能有不同的认证方式和流程,具体的步骤可以参考API提供方的文档或开发者指南。

2.2 API密钥的生成和管理

生成API密钥的步骤如下:

  1. 注册开发者账号:首先,您需要注册一个开发者账号,例如在一个云计算平台或者API提供商的网站上注册。

  2. 创建项目:在开发者账号中创建一个新的项目。这个项目用于管理您的API密钥和其他相关设置。根据平台不同,创建项目的步骤可能会有所不同。

  3. 生成API密钥:在项目中,您可以找到一个选项来生成API密钥。点击这个选项,系统会自动生成一个API密钥,并向您显示。

  4. 保存API密钥:将生成的API密钥保存到一个安全的地方,例如文本文件或者密码管理软件。请确保不要分享或者泄露您的API密钥。

API密钥管理的一些建议如下:

  1. 保持机密性:API密钥相当于是一个访问权限的凭证,类似于密码。因此,您应该妥善保管您的API密钥,不要分享给他人,尤其是不要通过不安全的渠道传输或者存储。

  2. 定期更换密钥:为了增加安全性,建议定期更换API密钥。这样即使某个密钥被泄露,也可以通过更换密钥来限制潜在的风险。

  3. 使用权限控制:许多API提供商提供了权限控制的功能,您可以根据需要为不同的API密钥设置不同的权限级别。这样可以限制某个密钥的访问权限,以减少潜在的风险。

  4. 监控和审计:定期监控您的API密钥的使用情况,并对异常情况进行审计。如果发现异常活动,立即采取措施来保护您的账号和系统。

2.3 认证错误处理

在开放API接口认证过程中,认证错误处理是非常重要的一部分。下面是一些处理认证错误的常见方法:

  1. 返回错误码和错误信息:可以定义一系列错误码来表示不同的认证错误,如错误码1001表示缺少认证信息,错误码1002表示认证信息无效等。在接口返回结果中,可以包含错误码和错误信息,以便开发者能够根据错误信息进行相应的处理。

  2. HTTP状态码:可以使用HTTP状态码来表示认证错误,如401表示未经认证,403表示认证失败等。在接口返回结果中,可以设置相应的HTTP状态码,以便客户端能够根据状态码进行相应的处理。

  3. 重定向到认证页面:如果用户尚未认证或认证信息过期,可以将用户重定向到认证页面,让用户进行认证操作。在认证成功后,再将用户重定向回原来的请求页面。

  4. 返回认证错误页面:如果用户尚未认证或认证信息过期,可以返回一个认证错误页面,提醒用户进行认证操作。在认证成功后,可以让用户返回原来的操作页面。

  5. 发送认证错误通知:在接口认证错误发生时,可以发送通知给相关人员,如开发者、管理员等,以便他们能够及时处理认证错误。

无论使用哪种方法,都需要提供清晰的错误信息和错误处理流程,以便开发者能够快速定位和解决认证错误。同时,安全性也是非常重要的,需要确保认证信息的安全性,避免泄露和被恶意攻击。

3、接口调用

3.1 请求方法和URL规范

在接口调用中,请求方法和URL规范是非常重要的。请求方法用于指定对资源的操作,URL规范则指定了资源的地址。

常用的请求方法有以下几种:

  1. GET:获取资源,没有副作用,可以被缓存。
  2. POST:提交数据,对资源进行新增操作。
  3. PUT:更新资源,对资源进行修改操作。
  4. DELETE:删除资源。

URL规范则包括了协议、域名、端口号、路径和查询参数等信息,用于唯一定位一个资源。例如,下面是一个URL规范的示例:

https://api.example.com/v1/users?id=123

上述URL规范中,协议为https,域名为api.example.com,端口号为默认的443,路径为/v1/users,查询参数为id=123。

在实际应用中,需要根据具体的需求来选择合适的请求方法和URL规范。一般来说,GET用于获取资源,POST用于新增资源,PUT用于更新资源,DELETE用于删除资源。而URL规范则需要根据项目的具体情况来设计,保证能够唯一定位到资源。

3.2 请求参数和格式

接口调用时,请求参数和格式是非常重要的。正确的请求参数和格式可以确保接口能够正常工作,并且能够返回正确的结果。

请求参数是指在调用接口时需要传递给接口的参数。不同的接口可能有不同的参数要求,例如接口需要传递一个用户名和密码,或者一个商品的ID等。在调用接口时,需要根据接口文档或者接口说明传递正确的参数。

请求格式是指发送请求时使用的格式,常见的请求格式有以下几种:

  1. GET请求:使用URL中的参数来传递请求参数,例如在URL中添加参数 ?key1=value1&key2=value2。

  2. POST请求:将请求参数放在请求的body中以表单的形式传递,一般使用表单的形式传递参数。

  3. JSON请求:将请求参数以JSON格式放在请求的body中传递,一般用于传递复杂的参数结构。

  4. XML请求:将请求参数以XML格式放在请求的body中传递,一般用于传递复杂的参数结构。

在调用接口时,需要根据接口要求使用正确的请求参数和格式。如果使用错误的请求参数或格式,接口可能无法正常工作,或者返回错误的结果。因此,在调用接口之前,需要仔细查看接口文档或者接口说明,了解接口的请求参数要求和格式要求,并按照要求进行调用。

3.3 响应数据格式和状态码

接口调用的响应数据格式和状态码是根据具体的接口规范和设计来确定的。一般情况下,常见的接口响应数据格式可以是以下几种:

  1. JSON格式:响应数据以JSON(JavaScript Object Notation)格式返回,这是一种轻量级的数据交换格式,易于阅读和解析。

  2. XML格式:响应数据以XML(eXtensible Markup Language)格式返回,这是一种标记语言,用于存储和传输结构化的数据。

  3. HTML格式:响应数据以HTML(Hypertext Markup Language)格式返回,这是一种用于创建网页的标记语言,可以在浏览器中直接渲染。

  4. 文本格式:响应数据以纯文本格式返回,通常用于返回简单的消息或错误信息。

接口调用的状态码用于表示接口请求的处理结果,常见的状态码包括:

  1. 200 OK:表示请求成功,并返回响应数据。

  2. 400 Bad Request:表示请求参数有误或缺失。

  3. 401 Unauthorized:表示未经授权,需要提供有效的认证信息。

  4. 403 Forbidden:表示请求被服务器拒绝,通常是因为权限不足或请求资源不存在。

  5. 404 Not Found:表示请求的资源不存在。

  6. 500 Internal Server Error:表示服务器内部错误,无法完成请求。

不同的接口可能会定义自己的状态码列表,具体的状态码和其含义应该在接口文档中进行说明。

3.4 错误处理和异常情况

在接口调用过程中,可能会出现各种错误和异常情况。为了保证系统的稳定运行和数据的完整性,需要采取相应的错误处理和异常处理机制。

  1. 错误处理:

    • 网络错误:如网络连接断开、超时等,可以设置重试机制或者记录错误日志进行后续处理。
    • 参数错误:如缺少必要参数、参数格式不正确等,需要根据接口规范进行参数校验,并给出合适的错误提示。
    • 接口返回错误:如接口返回错误码,可以根据错误码进行相应的处理,如重试、使用备用接口或者抛出异常。
    • 并发冲突:如多个请求同时对同一资源进行修改,可以采用乐观锁或者悲观锁机制进行处理,避免数据错误。
    • 限流和熔断:如果接口请求过多,可以通过限流或者熔断机制来控制接口的访问频率,避免系统过载。
    • 数据库错误:如数据库连接失败、SQL语句错误等,需要进行合适的异常捕获和处理,如回滚事务、重试等。
  2. 异常处理:

    • 异常捕获:在接口调用过程中,可能会出现各种异常,如空指针异常、数组越界异常等,需要使用try-catch语句进行捕获,并进行相应的处理。
    • 异常传递:在接口调用的上层调用中,如果无法处理某个异常,可以将异常向上层抛出,由上层进行处理。
    • 异常日志:对于无法处理的异常,应该记录相关的错误日志,包括异常类型、详细错误信息等,方便后续进行排查和修复。
    • 异常补偿:有些异常情况可能无法完全回滚到初始状态,可以采用补偿机制进行处理,如尽量恢复到一个可用的状态,避免数据丢失。

在实际的开发中,需要根据具体的业务需求和系统架构,设计合适的错误处理和异常处理机制,保证系统的稳定性和可靠性。

4、接口权限和限制

4.1 权限控制和用户角色

接口权限是指在使用接口时,对用户进行权限控制和限制的机制。通过接口权限控制,可以设定不同的用户角色,并给予不同用户角色不同的权限。

在权限控制中,常见的用户角色包括超级管理员、管理员、普通用户等。不同用户角色对应不同的权限,超级管理员拥有最高权限,可以进行所有操作;管理员可以进行一些管理操作;普通用户只能进行一些基本操作。

权限控制可以通过以下方式实现:

  1. 登录验证:用户在使用接口前需要先进行登录验证,验证通过后才能获取接口权限。

  2. 用户角色管理:在系统中设定不同的用户角色,并给予不同的权限。

  3. 权限验证:在接口调用前进行权限验证,判断用户是否具有调用该接口的权限。

  4. 接口限制:可以对接口进行限制,例如限制每个用户每天只能调用一定次数的接口。

通过以上方式,可以实现对接口的权限控制和限制,确保只有具备相应权限的用户才能访问和使用接口。

4.2 访问频率限制

访问频率限制是接口权限和限制中一种常见的限制方式。它用于限制用户或应用程序对接口的访问频率,以防止滥用和资源过载。

访问频率限制通常通过设置访问速率和配额来实现。速率限制规定了用户在特定时间内允许访问接口的次数,例如每分钟、每小时或每天的请求数量限制。配额限制则规定了用户可以访问接口的总次数,例如每月或每年的最大请求数。

访问频率限制可以在不同的层面进行,包括全局限制、用户级别限制和应用程序级别限制。全局限制适用于所有用户和应用程序,用户级别限制适用于单个用户,应用程序级别限制适用于特定的应用程序。

访问频率限制可以有助于防止DDoS攻击、恶意暴力破解和无限循环调用等问题。它还可以帮助维护接口的可用性和性能,确保所有用户都能够公平地使用接口资源。

为了有效实施访问频率限制,接口开发者可以使用各种技术和工具,如令牌桶算法、限流器、缓存和分布式系统。此外,接口开发者还可以提供合理的错误信息和反馈,以帮助用户和应用程序了解限制和如何调整其请求行为。

总之,访问频率限制是接口权限和限制中一种重要的限制方式,它可以保护接口资源免受滥用和过载,并确保公平、可靠和高效的接口使用体验。

4.3 数据权限和访问控制

接口权限和限制中的数据权限和访问控制是指对接口的数据访问进行限制和控制的方式和方法。

数据权限是指接口在使用时对数据的访问权限进行限制的措施。通过设定合适的权限级别和权限控制策略,可以确保只有合法的用户或角色可以访问和操作特定的数据。数据权限可以根据用户身份、角色、组织结构等进行设置,以确保数据的隐私和安全。

访问控制是指对接口的访问进行限制和控制的方法。通过合理设置访问控制列表(ACL)、访问令牌、身份验证等手段,可以确保只有经过授权的用户或系统可以访问接口。访问控制可以根据用户的身份、权限级别、IP地址等进行设置,以保证接口的安全性和可用性。

数据权限和访问控制是保证接口安全和合规的重要手段。只有合法的用户或系统经过授权并符合相应的权限要求才能访问和操作接口的数据,从而保障数据的隐私和安全,防止潜在的恶意攻击和滥用行为。同时,数据权限和访问控制也能够帮助企业遵守相关法律法规和合规要求,降低数据泄露和违规操作的风险。

5、接口示例和文档

接口示例和文档通常是用来描述和展示一个软件系统的API(应用程序接口)的功能和用法的。它们通常包含以下内容:

  1. 接口示例(Interface Example):一个接口示例是一个具体的示例代码段,展示了如何使用API中的不同方法和参数以及预期的输出结果。这个示例可以帮助开发者快速了解API的基本用法。

例如,假设有一个名为"User"的API,其中包含了一些方法,如"getUserById"和"getAllUsers"。一个接口示例可以展示如何使用这些方法来获取用户信息:

// 获取指定ID的用户信息
User getUserById(int userId);// 获取所有用户信息
List<User> getAllUsers();// 使用示例
int userId = 123;
User user = getUserById(userId);
List<User> allUsers = getAllUsers();

        2. 接口文档(Interface Documentation):接口文档是对API的详细描述,包括API的功能、输入参数、返回值、异常处理、使用方法以及其他相关信息。它通常以文本、图表或者其他可视化的方式呈现,以便于开发者理解和使用API。

接口文档通常包含以下内容:

  • API的概述和目的
  • API的方法列表和参数说明
  • 方法的返回值和异常处理说明
  • 使用示例和代码片段
  • API的限制和限制条件
  • 接口的版本信息和更新日志
  • 联系方式和帮助文档的链接

接口示例和文档是开发者理解和使用API的重要工具。它们可以帮助开发者快速上手并正确使用API,减少开发时间和错误。同时,它们也是API提供者与使用者之间沟通和合作的重要纽带。

6、结语

        文章至此,已接近尾声!希望此文能够对大家有所启发和帮助。同时,感谢大家的耐心阅读和对本文档的信任。在未来的技术学习和工作中,期待与各位大佬共同进步,共同探索新的技术前沿。最后,再次感谢各位的支持和关注。您的支持是作者创作的最大动力,如果您觉得这篇文章对您有所帮助,请考虑给予一点打赏。

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

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

相关文章

遍历子网所有ip地址,寻找空闲ip

在cmd窗口下输入如下代码&#xff1a; for /l %i in (1,1,255) do ping -n 1 -w 60 10.183.27.%i | find "Reply" >> d:\pingall27.log 得到如下结果 上图中&#xff0c;有reply的代表该IP已经被占用。但是观察红框中 22-->25之间缺少23 24 则说明23/24 是…

ChatGPT到底好不好用?相比于搜索引擎的优势

在数字化时代&#xff0c;获取信息的方式正经历着翻天覆地的变化。搜索引擎曾经是我们获取信息的首选工具&#xff0c;但现在&#xff0c;随着人工智能技术的飞速发展&#xff0c;ChatGPT等智能聊天机器人正在逐渐改变我们搜索和处理信息的方式。那么&#xff0c;ChatGPT到底好…

宿舍安全用电监模块

学校宿舍安全用电监测模块是针对 0.4kV 以下的 TT、TN 系统设计的智能电力装置&#xff0c;具有单、三相交流电测量、四象限电能计量、谐波分析、开关量输入、继电器输出功能&#xff0c;以及 RS485 通讯或 GPRS 无线通讯功能&#xff0c;通过对配电回路的剩余电流、导线温度等…

理想架构的Doherty功率放大器理论与仿真

Doherty理论—理想架构的Doherty功率放大器理论与仿真 参考&#xff1a; 三路Doherty设计 01 射频基础知识–基础概念 ADS仿真工程文件链接&#xff1a;理想架构的Doherty功率放大器理论与仿真 目录 Doherty理论---理想架构的Doherty功率放大器理论与仿真0、Doherty架构的作用…

神经网络算法与逻辑回归:优势与差异

神经网络算法和逻辑回归都是预测模型中的重要工具&#xff0c;但它们在处理复杂和非线性问题时表现出不同的性能。本文将深入探讨神经网络算法相对于逻辑回归的优势&#xff0c;以及它们在不同场景下的适用性。 一、引言 神经网络算法和逻辑回归都是预测模型中的重要工具&…

Python - argparse模块

python中的argparse模块&#xff0c;用于命令后参数解析&#xff0c;方便测试&#xff0c;是python中自带的模块。 可以自动生成帮助文档&#xff0c;和使用手册。而且当用户在执行程序的时候&#xff0c;输入无效的参数时&#xff0c;会给出对应的错误信息。 使用方法&#…

贪吃蛇(C)

游戏背景&#xff1a;贪吃蛇是久负盛名的游戏&#xff0c;它也和俄罗斯⽅块&#xff0c;扫雷等游戏位列经典游戏的⾏列。 总&#xff1a; 游戏设计大纲&#xff1a; 使⽤C语⾔在Windows环境的控制台中模拟实现经典⼩游戏贪吃蛇。 实现的基本功能&#xff1a; 1、贪吃蛇地图绘制…

自己构建webpack+vue3+ts

先看看我的目录结构&#xff08;我全局使用TS&#xff09;&#xff1a; 一、安装配置webpack打包 安装esno npm install esnoesno 是基于 esbuild 的 TS/ESNext node 运行时,有了它&#xff0c;就可以直接通过esno *.ts的方式启动脚本&#xff0c;package.json中添加 type:…

echarts绘制饼图,部分数据隐藏指示线和文本,hover时隐藏指示线和文本的类别也不显示tooltip提示

option {tooltip: {trigger: item,formatter: (p) > {if (p.name) {return ${p.name}&#xff1a;${p.value}个;}},backgroundColor: #ffffff,textStyle: { color: #666666 } // 提示标签字体颜色},legend: {top: 5%,left: center},series: [{name: Access From,type: pie,…

【机组】指令控制模块实验的解密与实战

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《机组 | 模块单元实验》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 ​ 目录 &#x1f33a;一、 实验目…

重叠柱状图做法,全程动图演示

最终效果&#xff1a; 具体步骤&#xff1a; 其他图形画法&#xff1a; 点线对比图做法&#xff0c;全程动图演示 气泡图做法&#xff0c;全程动图演示 重叠柱状图做法&#xff0c;全程动图演示 瀑布图做法&#xff0c;全程动图演示 对称图做法&#xff0c;全程动图演示

[Tomcat] [最全] 目录和文件详解

打开tomcat的解压之后的目录可以看到如下的目录结构&#xff1a; Bin bin目录主要是用来存放tomcat的命令&#xff0c;主要有两大类&#xff0c;一类是以.sh结尾的&#xff08;linux命令&#xff09;&#xff0c;另一类是以.bat结尾的&#xff08;windows命令&#xff09;。 …

npm或者pnpm或者yarn安装依赖报错ENOTFOUND解决办法

如果报错说安装依赖报错&#xff0c;大概率是因为npm源没有设置对&#xff0c;比如我这里安装protobufjs的时候报错&#xff1a;ENOTFOUND npm ERR! code ENOTFOUND npm ERR! syscall getaddrinfo npm ERR! errno ENOTFOUND npm ERR! network request to https://registry.cnpm…

小白水平理解面试经典题目LeetCode 594 最大和谐字符串

594 最大和谐字符串 这道题属于字符串类型题目&#xff0c;解决的办法还是有很多的&#xff0c;暴力算法&#xff0c;二分法&#xff0c;双指针等等。 题目描述 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。 现在&#xff0c;给你一个整数数组 nums …

扫码看文件效果怎么做?文件转成二维码能制作吗?

随着网络的快速发展&#xff0c;现在大家习惯将内容储存在云端&#xff0c;减少自身内存容量的占用&#xff0c;所以现在分享文件时&#xff0c;很多人也会使用文件转二维码的方式&#xff0c;来让其他人查看或者下载文件。今天小编来给大家分享一下文件制作二维码的技巧&#…

司铭宇老师:二手房电话营销培训:二手房电话销售技巧和话术

二手房电话营销培训&#xff1a;二手房电话销售技巧和话术 一、二手房电话销售的重要性 1.高效传播&#xff1a;通过电话&#xff0c;我们可以迅速将房源信息传播给潜在客户&#xff0c;提高房源的曝光率。 2.精准定位&#xff1a;通过电话沟通&#xff0c;我们可以初步了解客户…

如何攻克钙钛矿太阳能电池电性能测试技术壁垒?

1 前言 “碳达峰、碳中和”背景下&#xff0c;发展新能源成为降低碳排放的第一驱动力。以太阳能为代表的清洁能源在市场上的占比大幅提升&#xff0c;与之对应的太阳能电池同样发展迅速。太阳能电池是一种吸收光能产生电能的半导体光电二极管&#xff0c;硅基电池作为第一代太…

Docker(十五)Fedora CoreOS

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; Fedora CoreOS CoreOS 是一个专门为安全和大规模运行容器化工作负载而构建的新 Fedora 版本&#xff0c;它继承了 Fedora Atomic Host 和 C…

13.8.1异步、异步、异步 Page720~721

#include <iostream> #include <thread> #include <future>using namespace std;///定时炸弹第一波 void sync_sleep(int s) {cout << "sync_sleep----不使用异步" << endl;///启动定时this_thread::sleep_for(chrono::seconds(s)); /…

3、柱状图和热图

使用颜色或长度来比较数据集中的类别 既然您可以创建自己的线性图表,现在是时候了解更多的图表类型了! 顺便说一下,如果这是您第一次使用 Python 编写代码,那么您应该为迄今为止所完成的工作感到非常自豪,因为学习一项全新的技能从来都不是一件容易的事情!如果你坚持这个课…