你最喜欢的 API 是什么,为什么?

应用程序编程接口 (API) 我以软件架构师的身份谋生 – 电信 API、GSMA OneAPI。
认证。严格来说,是协议而不是 API,但它可以与很多 API 一起使用。我在 OAuth 设计和测试方面做了一些工作。 Miguel Paraz 对 OAuth 2.0 如何工作的回答?
Google Maps API,可能是我在 2000 年代使用的第一个“Web 2.0”API。
如前所述,这个问题并不真正有效。 API是应用程序(ing)接口。它是可用于让程序做某事或提供信息的函数的集合。 API 是一个程序或程序单元与另一个程序或程序单元交互的方式。 API 通常不是人类交互点。

所以每个程序都有自己的 API。询问哪些 API 是最好的是无效的。

我怀疑这不是你真正想问的。请在问题详细信息部分进行说明。
就像你为我写了这个问题一样,这个咆哮的过山车是我一直渴望继续下去的一个。
一个好的 API 已记录在案!这意味着它的每个调用都被记录在案,它们做什么,它们返回什么,以及它们对当地状态的影响(如果有的话)是详细的。制作它以便您可以为调用添加标志或路径并获取详细说明文档的网页是加分项。
一个好的 API 是无状态的!看到上面那条线了吗?大多数情况下,API 调用应该以“对状态的影响:无状态”结束
一个好的 API 是版本化的!这意味着当您拨打电话时,路径中的某处会显示 /v1/somemodeloractionhere/dostuff。这样一来,当您必须彻底淘汰旧 API 时,依赖它的服务不会中断,并且您不必集成多个 API 版本。它还可以轻松(通过读取服务器日志)了解已弃用的 API 何时不再使用并且可以停用。
一个好的 API 是安全的!您的 API 不应该允许人们进行更改,除非有特定的原因,它不应该允许人们绕过任何存在的安全层,它应该为可以访问状态更改功能的受信任合作伙伴提供 API 密钥,它应该具有基于 API 密钥组的授权,并且如果可能的话,您的 API 不应直接访问您的主要 Web 应用程序。最后一个问题是一个很高的问题,但是如果您构建应用程序使其核心功能与其表示层分离,那么您可以多次使用内置的“API FUNCTIONALITY”标志来实现核心功能相同,该标志禁用更改应用程序状态。然后,您只需维护一个核心应用程序、一个表示应用程序层和一个 API 层。核心应用程序同时部署。
一个好的 API 在多种通信类型中是一致的。这个难度要大得多,如果你必须跳过它,你仍然会得到一个 B。让你的 API 以相对频率使用 JSON、XML 或 ProtoBuf 并没有什么坏处,而且有时它真的很不错,他们每个人都有长处和短处。
一个好的 API 可以/应该至少考虑使用像 Swagger 或 Apiary 这样的工具来帮助您管理上述部分或全部内容,以便让您的 API 有良好的文档记录和可管理性不会导致您的开发人员社区变成心理健康社区。
这是我能想到的一切。
但是谢谢你的问题!
我不得不提到我最近遇到的两个非常不同的 API,它们仍然让我着迷。一种是Unsplash API,另一种是AwardWallet Parsing API。
Unsplash API 是一个惊人的高清图片来源,对于任何网站或应用程序都是必不可少的,因为“没有图片的书有什么用?”正如 Alice 曾经说过的那样。收藏量很大,质量也很好。似乎没有哪一种图片太难找了。我真的试过了。
AwardWallet Email Parsing API 做了一个好的解析器应该做的事情:它从电子邮件中提取必要的信息并将其转换为一个结构化的单元,以供进一步使用。 AwardWallet 专门处理旅行预订,并且在这方面已经达到了一定程度的完善,所以如果您的应用程序或网站与旅行预订有任何关系,AwardWallet API 就是您所需要的。