1
Hzzone 2018-04-24 11:37:35 +08:00
application programming interface:relaxed:
|
2
MeteorCat 2018-04-24 12:55:54 +08:00 2
你那个是远程调用`RPC[Remote Procedure Call]`,调用远程服务器的函数方法;
以下是我自己拙见: RPC 本质上还是 API,都是请求服务器做 IO[input/output] 需要知道 API 是什么?为什么?怎么做? API 是什么? API 全称就是就像楼上说的`application programming interface`,这个是暴露给外部的入口,理论上任何能够提供网络数据服务[并非页面渲染]都是 api[游戏接口有个获取客户端 IP 地址,本身就是一个调用系统函数取 IP 地址,这就是 API],哪怕你 printf("%s","api service") 为什么使用 API? 处理服务器网络(数据库保存写入|配置信息)任务,本质上就是为了网络通信,你不能让客户端直接连接 DB 层|Service 层,你需要暴露接口作为服务 怎么做 API ? API 是个泛型概念,RPC|JSON|XML|Protobuf 都可以 总结来说就是 API 只是个泛型概念,你提供网络通信服务,那么你就是 API |
3
timwei 2018-04-24 14:09:39 +08:00 3
同意 API 只是个泛型概念,表达「客户端与系统交互的接口」
举银行做例子,我要从银行提款,我不能直接走进银行金库拿钱就走,我需要透过柜员,柜员就是我与银行的接口 不同意 API 一定要牵扯到网络通信这说法,这个客户端不一定要是另一个计算机,也有可能是同计算机下的不同程序 像是 OpenGL API 或 Camera API 这类的封装,也称为 API,是图形系统、摄相机对外部程序的接口 我(客户端)透过 银行柜员(接口) 在 银行(系统) 进行 提款(交互) Unity 透过 OpenGL API 在图形系统进行游戏画面渲染 浏览器透过 Camera API 在摄像头进行拍摄 |