什么是 API
极客时间《朱赟的技术管理课》学习笔记 13
18 每个工程师都应该了解的:API 的设计和实现
2018
API 的签名(Signature)设计是语言无关的,那你在设计中会引入更多的语言还是更少的语言去实现不同的 API 呢,优点和缺点各是什么?
作为一个没有设计和实现过 API 的程序员,只能按照自己的想象来回答这个问题。题目似乎也有一些模糊,不知道这里的引入是指 API 的实现,还是 API 的调用,姑且按照实现来考虑。
既然 API 的签名是与语言无关的,那么在设计中应该只需要引入少量的语言去实现就可以了。一般采用与系统开发一致的语言,应该会更容易调试。
如果按照 RESTful 的风格,对所有的资源建立增删改查的操作,这样的 API 看上去灵活性应该很好。
如何传递一个哈希?难道不是传递一个 JSON 风格的字符串么?
Ruby 的 API 框架是什么?C# 呢?
AOP 是什么意思?看上去似乎是在说把日志、监控等公共的部分独立出来,个人感觉这样的实现比较合理,当然也要考虑复杂度和代价。
2021
其实 API, Application Programming Interface,就是一个接口定义。
is an interface that defines interactions between multiple software applications or mixed hardware-software intermediaries. It defines the kinds of calls or requests that can be made, how to make them, the data formats that should be used, the conventions to follow, etc -- wiki
What is an API? The Federal Circuit described an API as a tool that "allow[s] programmers to use ... prewritten code to build certain functions into their own programs, rather than write their own code to perform those functions from scratch." Through an API, a programmer can draw upon a vast library of prewritten code to carry out complex tasks. -- Oracle America, Inc. v. Google, Inc.
这一段引文来自 2020 年谷歌和甲骨文之间的专利官司
版权声明: 本文为 InfoQ 作者【escray】的原创文章。
原文链接:【http://xie.infoq.cn/article/b346fa8c4135005bd38179230】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论