网络外的api如何工作?

时间:2019-03-23 14:47:06

标签: rest api

我在这里学习API,但找不到任何文章或任何答案:“网络之外是否有API?”

我在工作中使用了许多API,但是在Rails应用程序上使用http / https,除此之外,我真的不知道它是什么。

我知道市场上有很多非HTTP API,例如来自iPhone的MetalAPI,vulkanAPI,它们都是我所知道的图形化目的

问题何时开始,如何运作?他们使用什么协议?他们如何沟通?

1 个答案:

答案 0 :(得分:0)

您需要将API的概念与机器之间甚至进程之间的通信分开。

API只是调用/执行代码的一种已定义方法,它位于您正在处理的代码之外。这可能是在您的应用程序本地执行的操作,例如使用Java中的GsonJackson类来处理JSON格式的数据,使用Qt或GTK +或Win32库在C ++应用程序中生成菜单,等等。或进程间通信和请求,例如访问topiptables之类的实用程序中的内核数据/函数,或者可能是在机器之间进行通信,以使远程机器执行“事情”。

然后,您将在机器之间或过程通信通道之间拥有。这可能是两台机器通过HTTP(s)协议甚至直接的套接字通信来回进行请求/答复,或者可能是本地计算机进程间通信。

当您谈论API是RESTful API或SOAP API时,它将开始结合所有这些以及更多内容,从而定义API运行方式的“模式”。例如,真正的RESTful API使用HTTP操作(GET,POST,PUT,DELETE)和状态码(已接收并处理200 OK,204 OK但未发送答复数据,未找到404资源,400格式错误的请求等)来处理传达意义。我们使用的基于Web的API通常比REST-ful更像REST。对于基于SOAP的API等,也存在类似的定义。https://en.wikipedia.org/wiki/SOAP#Protocol_concepts