V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wdring
V2EX  ›  程序员

用 flightphp 框架写 api,一个页面有很多数据怎么合并?

  •  1
     
  •   wdring · 2018-07-21 11:40:23 +08:00 · 3076 次点击
    这是一个创建于 2352 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如首页有
    用户信息 = api_userinfo
    公告列表 = api_gonggao
    文章列表 = api_articlelist
    那不是要发出请求 3 个请求 api,如果 3 个 api 数据合并起来,别的页面要用用户信息又要重新弄个 api ?
    有点蒙圈
    有没有办法我的 api.php 写好 N 个接口方法
    调用的时候根据需要自由合并输出数据,这样只有一个请求
    在用 flightphp 框架
    7 条回复    2018-07-21 15:35:58 +08:00
    torbrowserbridge
        1
    torbrowserbridge  
       2018-07-21 11:58:56 +08:00 via Android
    加一个参数,指明调用的子接口。另外这个和语言以及框架有啥关系。
    huijiewei
        2
    huijiewei  
       2018-07-21 12:00:08 +08:00 via iPhone
    1,不用合并
    2,建立一个 proxy api 整个

    至于你想要的叫 graphql,未必能搞定
    TommyLemon
        3
    TommyLemon  
       2018-07-21 12:03:56 +08:00
    如果你会 Java 或 C#,建议用 APIJSON,
    直接将前端传的 JSON 参数 [完全自动] 地转为 SQL 语句执行并返回结果,
    期间自动校验权限、结构、内容,自动防 SQL 注入,

    通过自动化 API,前端可以定制任何数据、任何结构!
    大部分 HTTP 请求后端再也不用写接口了,更不用写文档了!
    前端再也不用和后端沟通接口或文档问题了!再也不会被文档各种错误坑了!
    后端再也不用为了兼容旧接口写新版接口和文档了!再也不会被前端随时随地没完没了地烦了!

    在线体验:<img src="apijson.org"/>
    源码和教程:<img src="github.com/TommyLemon/APIJSON"/>
    创作不易,GitHub 右上角点 Star 支持下吧^_^
    TommyLemon
        4
    TommyLemon  
       2018-07-21 12:06:36 +08:00
    @huijiewei
    GraphQL 是需要后端提前定义好数据结构( Schema,Type )的,灵活性只比 RESTful 好一些,但远远不够。
    juejin.im/entry/5b4ff88f6fb9a04f914a8df5
    Vogan
        5
    Vogan  
       2018-07-21 14:19:58 +08:00
    其实调 3 个,也有一定优势。
    如果没有依赖关系,你考虑过是可以异步执行的吗?另外接口出错的冗余性也会提高。
    akira
        6
    akira  
       2018-07-21 15:10:17 +08:00
    这不就是 api 网关做的事情咯
    caola
        7
    caola  
       2018-07-21 15:35:58 +08:00
    参数控制输出哪些信息
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2761 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:27 · PVG 22:27 · LAX 06:27 · JFK 09:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.