V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iamqiwei
V2EX  ›  PHP

[小白提问]怎么样才是 API

  •  
  •   iamqiwei · 2018-04-24 11:22:52 +08:00 · 2982 次点击
    这是一个创建于 2165 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我现在写异步请求就是把一堆函数写在一个文件里面,通过传一个函数名给 call_user_func($fn)来调用那个函数,我感觉这不算 api 吧???
    3 条回复    2018-04-24 14:09:39 +08:00
    Hzzone
        1
    Hzzone  
       2018-04-24 11:37:35 +08:00
    application programming interface:relaxed:
    MeteorCat
        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
    timwei
        3
    timwei  
       2018-04-24 14:09:39 +08:00   ❤️ 3
    同意 API 只是个泛型概念,表达「客户端与系统交互的接口」

    举银行做例子,我要从银行提款,我不能直接走进银行金库拿钱就走,我需要透过柜员,柜员就是我与银行的接口

    不同意 API 一定要牵扯到网络通信这说法,这个客户端不一定要是另一个计算机,也有可能是同计算机下的不同程序

    像是 OpenGL API 或 Camera API 这类的封装,也称为 API,是图形系统、摄相机对外部程序的接口


    我(客户端)透过 银行柜员(接口) 在 银行(系统) 进行 提款(交互)
    Unity 透过 OpenGL API 在图形系统进行游戏画面渲染
    浏览器透过 Camera API 在摄像头进行拍摄
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1053 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:10 · PVG 03:10 · LAX 12:10 · JFK 15:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.