Rust外部Web API:权威指南

2020年12月30日11:19:25 发表评论 29 次浏览

本文概述

外部Web API是一种API, 旨在供Web开发人员以外的更多人群访问。我们将用语言实现的外部Web API称为包装器, 因为它们将本机Web API提供的功能和接口牢固地封装到易于使用的库中。库提供了与整个服务交互的简单方法, 从而无需手动将HTTP请求写入各个端点。

内部和外部的API包装器具有多种特征, 可以将它们彼此区分开, 从而使某些包装对于某些用例比其他包装更为合适和有用。在本指南中, 我们将不按特定顺序评估Rust中可用的一些最受欢迎的外部API, 包括:

  • 用于Spotify的Rust API包装器
    • 散布
    • rspotify
  • 用于Rust的Twitter库
    • 鸡蛋模式
  • Discord API的Rust库
    • 宁静
    • 不和谐
  • GitHub的Rust板条箱
    • 轮毂罩
    • 八角形
  • Rust Telegram机器人
    • 电报机器人
    • 端粒氧化物
  • 适用于AWS的Rust板条箱
    • 赤铁心
  • 其他Rust Web API
    • urlshortener
    • 维基百科
    • 推杆
    • 钩子
    • 怒吼

我们将根据以下标准评估上述每个API:

  1. 稳定性—维护, 更新率, 开发人员响应, 许可证, 依赖性数量, 发行版等。
  2. 人气度— GitHub明星, crates.io统计信息, fork, 社区等。
  3. 开发人员经验—易于使用, 文档, 问题, 社区, Rust代码规范, 语法等。

最后, 我们将概述一些步骤来帮助你为你的Rust项目选择最佳的外部Web API.

用于Spotify的Rust API包装器

本机Spotify Web API允许访问一组终点, 每个都有自己的独特路径。像此列表中的许多其他包装器一样, 通过API密钥或OAuth进行身份验证必须访问Spotify Web API。

最受欢迎的Spotify Rust Web API包装器是散布和rspotify.

散布

散布是Spotify API的Rust包装器。它围绕Spotify的所有组件提供Rust结构对象模型并在其所有端点周围起作用。

散布用途要求处理API调用。目前, 它支持所有稳定的Spotify功能。也有计划增加对其他Rust HTTP客户端对于喜欢使用不可知库的Rust开发人员来说, 这将是一个巨大的突破。

缺点之一是散布相对缺乏文档。就是说, 该资料库包含了许多示例示例, 可帮助新手入门。

  • 稳定性:
  • 人气:⦿⦿⦾⦾⦾
  • 开发人员经验:

rspotify

rspotify是一款坚固而轻巧的包装Spotify Web API。它包含适用于Spotify所有端点的功能, 从获取元数据到访问用户信息(跟随用户, 艺术家和播放列表, 保存的曲目管理等)。你可能会想到, 此Web API也需要身份验证。

我们为制作了一个自定义演示.
不完全是。点击这里查看.

Rust外部Web API:权威指南1

rspotify的缪斯是斑节病, 一种流行的python Spotify网络API。喜欢散布, rspotify用途要求在引擎盖下, 但它有更好的支撑和文件资料以及有用的代码示例。它看起来准备好跳上你的生产代码。

  • 稳定性:
  • 人气:⦿⦿⦿⦿⦿
  • 开发人员经验:

用于Rust的Twitter库

鸡蛋模式

鸡蛋模式是一个与Twitter公共API交互的Rust库。尽管Twitter API非常庞大, 鸡蛋模式仍然致力于实现整个公共API, 并使任何人都可以尽可能轻松地在Rust中使用Twitter API。

In鸡蛋模式, 端点可以作为裸函数使用, 这很有趣, 因为与其他外部Web API不同, 身份验证详细信息是作为参数而不是作为根工作程序添加的。

与其他Rust Twitter包装器相比, 鸡蛋模式是很新的。但是, 它足够完整和稳定, 可用于生产。该库非常受欢迎, 维护良好并记录在案, 并提供了涵盖大多数用例的出色示例。

  • 稳定性:
  • 人气:⦿⦿⦿⦿⦾
  • 开发人员经验:

Discord API的Rust库

Discord提供了成熟的API接口, 以帮助其强大而活跃的社区创建第三方应用程序。幸运的是, 有两个稳定的库可以促进Rust中的这种交互:宁静和不和谐.

宁静

宁静是Discord API著名的Rust库, 使你可以创建成熟的Discord机器人。你可以访问整个Discord API并执行操作, 例如发送消息, 提及用户, 语音通道操作, 获取/发送响应等。宁静的尖端功能从高级接口到低级接口。

宁静使用来无缝验证API客户端:: new(<token>), 你可以在其中提供Discord机器人令牌。之后, 你可以与API进行交互。宁静使你可以使用以下命令检查以前的令牌validate_token, 这是可扩展性的优点。

该库是唯一的, 因为它会自动处理分片的连接和缓存, 从而简化了复杂性并避免了对Discord API的不必要的HTTP请求。

宁静是一种纯粹的快乐。它有太多的充分说明的例子, 它自己的不和谐服务器, 良好的维护/发布时间表, 问题管理以及详尽的文件.

专家提示:你可以使用宁静实用程序延长宁静程度并为使用以下命令创建的Discord机器人提供转换, 提示和菜单功能宁静.

  • 稳定性:⦿⦿⦿⦿⦿
  • 人气度:⦿⦿⦿⦿⦿
  • 开发人员经验:⦿⦿⦿⦿⦿

不和谐

不和谐是用于的Rust客户端库不和谐聊天客户端API。

用不和谐, 使用bot令牌进行身份验证后, 就可以使用网络套接字连接访问Discord事件。

据说该项目偶尔会维护。你不应该期望有很多重大更改或近期更新。该文档写得很好, 并在存储库中包含了很多示例。

  • 稳定性:⦿⦿⦿⦿⦾
  • 人气度:⦿⦿⦿⦾⦾
  • 开发人员经验:⦿⦿⦿⦾⦾

GitHub的Rust板条箱

GitHub的API使你可以访问旨在帮助你在GitHub上管理存储库的一系列功能。 GitHub API除了具有极强的响应性外, 还具有许多端点, 如果你要构建下一个问题管理机器人或github动作工作流, 这些端点可能会变得难以管理。

轮毂罩

轮毂罩提供了一组与GitHub API交互的构建块。它提供了一个用于存储库, 分支, 标签, 部署, 问题, 提取, 发布, 要点, 挂钩, 搜索和团队的接口, 并且可以非常轻松地对Github API服务进行身份验证。

轮毂罩非常稳定, 已经有一段时间了。它因使用GitHub API而闻名, 并且已经存在许多未解决的问题。也有许多示例可以帮助你入门。

  • 稳定性:⦿⦿⦿⦿⦿
  • 人气度:⦿⦿⦿⦿⦾
  • 开发人员经验:⦿⦿⦿⦿⦾

八角形

八角形是第三方GitHub API客户端, 使你可以在Rust中创建自己的GitHub集成。它附带了一个高级的, 强类型的语义API, 该API由直接与该API交互的Rust函数组成, 以及一个使你能够扩展当前函数或创建自定义函数的较低级HTTP API。

八角形公开了一套HTTP行为, 该行为始终使用任何先前的身份验证和配置。这个公开的API使你可以很好地控制HTTP调用生成的所有请求和响应。

由于GitHub的变化速度很快, 因此库很难绑定API的每一项全新功能。然而, 八角形快速移动并尽可能与本机GitHub API配对。八角形遵循Rust的最新最佳做法, 而不会损害已知的灵活性, 从而使你能够扩展八角形的API, 并与GitHub的API紧密结合。

虽然八角形这是一个非常新的东西, 它是一个稳定, 维护良好的库, 遵循Rust约定, 并有据可查。

  • 稳定性:⦿⦿⦿⦿⦿
  • 人气度:⦿⦿⦿⦿⦾
  • 开发人员经验:⦿⦿⦿⦿⦾

Rust Telegram机器人

漫游器是在Telegram中运行的第三方应用程序。用户可以通过向机器人发送消息, 命令和内联请求.

电报机器人

的锈电报机器人库, 要么电报机器人API, 涵盖了广泛的Telegram机器人功能。它仅几行即可为你提供构建完整的Telegram机器人所需的所有工具。

电报显示机器人可能需要的事物的完整示例目录。维护良好且稳定, 社区可以迅速跟进问题。

  • 稳定性:⦿⦿⦿⦿⦿
  • 人气度:⦿⦿⦿⦿⦾
  • 开发人员经验:⦿⦿⦿⦿⦾

端粒氧化物

端粒氧化物将自己描述为Rust的一个优雅的Telegram机器人框架。

端粒氧化物使在Telegram中创建机器人的过程变得令人愉悦。设计精美, 几乎涵盖了整个Telegram机器人API。

端粒氧化物提供了一个高级Rust实现, 该开发使开发变得容易且有趣。它遵循功能性反应式设计, 具有完整的对话管理子系统, 并提供强类型的bot命令。

除了出色的文档资料, 这些功能还证明了端粒氧化物旨在使开发人员的工作更加轻松。它已投入生产, 并严格遵循官方的Telegram机器人API, 该API经常更改。

  • 稳定性:⦿⦿⦿⦿⦿
  • 人气度:⦿⦿⦿⦿⦾
  • 开发人员经验:⦿⦿⦿⦿⦿

适用于AWS的Rust板条箱

亚马逊网络服务(AWS)是一组广泛的开发人员服务, 以其可访问性和完整性而著称。 AWS包括从数据库和身份验证到AI和NLP产品的170多种服务。

AWS服务必须具有每种现有语言的SDK和包装器, 因为当你开始使用云时, 这些服务变得非常重要。

rusoto_core

Rusoto以其广泛的AWS服务而闻名于Rust社区, 因此成为使用Rust和AWS的开发人员的首选。

赤铁心是核心箱子, 其中包含常用功能。 Rusoto将每个人分开支持的AWS服务放入一个单独的板条箱中, 充当排序树摇摇库, 你仅在其中使用所需的服务。这些服务是从BotocoreAPI定义

就像本指南中列出的大多数Web API一样, Rusoto也需要身份验证API-在Rusoto中, 它由自己的独立板条箱管理。这种模块化的简单性使与Rusoto一起工作变得非常愉快。

Rusoto有一个繁荣的社区和详尽的文件并且非常稳定并且维护得很好。

  • 稳定性:⦿⦿⦿⦿⦿
  • 人气度:⦿⦿⦿⦿⦿
  • 开发人员经验:⦿⦿⦿⦿⦿

其他Rust Web API

以下Rust库和软件包不能很好地归入上面列出的任何类别, 但仍然值得在你的武器库中使用。

urlshortener

顾名思义, urlshortener旨在通过一个最小的接口实现尽可能多的URL缩短服务。

let req = providers::request(long_url, &Provider::GooGl { api_key: key.to_owned() });

urlshortener提供一长串实用程序, 可用于缩短URL;有些需要认证, 而另一些则不需要。

  • 稳定性:⦿⦿⦿⦿⦿
  • 人气度:⦿⦿⦿⦿⦾
  • 开发人员经验:⦿⦿⦿⦿⦾

维基百科

通过HTTP请求访问Wikipedia是一项艰巨的任务。通常要处理很多参数, 并且结果很难解析。

幸运的是维基百科库将Wikipedia端点的繁琐工作转换为易于使用的Rust函数。

维基百科是唯一可广泛使用的同类库。它已经稳定, 有据可查且易于学习。

  • 稳定性:⦿⦿⦿⦿⦿
  • 人气度:⦿⦿⦿⦿⦾
  • 开发人员经验:⦿⦿⦿⦿⦾

推杆

推杆帮助你构建实时功能并在Web和移动应用程序中推送通知。

推杆提供绑定Pusher REST API在Rust中。它使你可以在前端触发事件并访问Pusher通道的内容。此内容包括有关你的应用程序的频道, 属性的有意义的信息, 以及对于存在频道而言, 当前已订阅它们的用户。

推杆具有强大的文档和结构良好的代码, 并且在生产中非常稳定。

  • 稳定性:⦿⦿⦿⦿⦿
  • 人气度:⦿⦿⦿⦿⦾
  • 开发人员经验:⦿⦿⦿⦿⦿

钩子

钩子是一个Rust箱子, 专门用于通过Webhooks向Slack发送消息。它可以用于在几行之内将任何Rust应用程序连接到你的Slack工作区。

钩子是一个非常受欢迎的Rust板条箱, 因为它可以快速完成工作。它具有非常好的文档并且非常稳定。

  • 稳定性:⦿⦿⦿⦿⦿
  • 人气度:⦿⦿⦿⦿⦿
  • 开发人员经验:⦿⦿⦿⦿⦾

怒吼

NATS.io是用于云原生应用程序, IoT消息传递和微服务架构的开源消息传递系统。

怒吼是NATS客户端协议的精简包装。学习使用客户端的最简单方法是阅读NATS客户端协议文档, 涵盖了所有提供的协议。

的亮点怒吼是它允许你选择自己喜欢的TLS支持在。。之间本机tls和沙沙作响板条箱。

怒吼是一个非常稳定的包装器。它遵循了NATS客户端协议中使用的概念和术语。它是最新的并且维护良好。

  • 稳定性:⦿⦿⦿⦿⦿
  • 人气度:⦿⦿⦿⦿⦾
  • 开发人员经验:⦿⦿⦿⦿⦾

如何选择外部Rust Web API

在本指南中, 我们涵盖了很多Rust外部Web API, 但这仍然只是冰山一角。尽管此列表并不详尽, 但是它足够全面, 可以让你大致了解在生产中选择外部Rust Web API时要寻找的内容。

为你的Rust项目寻找一个好的开源库时, 需要考虑几个标准。这是一份快速备忘单, 你下次在Rust中寻找外部Web API时可以参考:

  1. 去箱子然后输入你要查找的服务(例如, 雅虎天气)。对于Rust开发人员来说, 另一个有用的资源是真棒锈, Rust库的精选列表
  2. 如果你得到一个以上的结果, 请比较他们最近的下载。数量越大, 在大多数情况下, 包装越受欢迎
  3. 向下滚动到选定箱子的页面底部, 然后分析使用情况图表。通常, 如果图表的值从左到右递增, 则表明它已经引起了社区的关注
  4. 打开存储库。如果是开源的, 则可能会在页面顶部找到指向该存储库的链接。
  5. 研究最新的提交, 未解决的问题和星级的数量, 甚至自述文件的结构方式。这些通常是指示包装维护状态的标志
  6. 最后, 浏览一下文档和可用的代码示例。大多数软件包使用锈文件。通过打开不同的模块, 你可以直观地看到它们在实践中的使用方式以及所采用的参数。一些软件包, 例如鲁索托, 其中有一些在社区中很流行的定制文档, 因为它们更加易于使用

日志火箭:对生产Rust应用程序的完全可见性

调试Rust应用程序可能很困难, 尤其是当用户遇到难以重现的问题时。如果你有兴趣监视和跟踪Rust应用的性能, 自动显示错误以及跟踪缓慢的网络请求和加载时间,

尝试notlogy

.

LogRocket仪表板免费试用横幅

日志火箭就像Web应用程序的DVR, 实际上记录了Rust应用程序中发生的所有事情。你可以汇总并报告问题发生时应用程序所处的状态, 而不用猜测为什么会发生问题。 notlogy还监视你的应用程序的性能, 报告诸如客户端CPU负载, 客户端内存使用情况等指标。

现代化如何调试Rust应用程序-免费开始监控.

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: