缓存复杂度 。由于GraphQL不再使用HTTP缓存语义,因此需要自定义缓存工作 。
很多预开发教育 。由于没有足够的时间来了解GraphQL利基操作和SDL,因此许多项目决定采用众所周知的REST路径 。
GraphQL用例移动API 。在这种情况下,网络性能和单个消息有效负载优化很重要 。因此,GraphQL为移动设备提供了更有效的数据加载 。
复杂的系统和微服务 。GraphQL能够隐藏其API背后的多个系统集成的复杂性 。从多个位置聚合数据,它将它们合并为一个全局模式 。这对于随时间推移而扩展的旧式基础结构或第三方API尤其重要 。
哪种API模式最适合您的场景?每个API项目都有不同的要求和需求 。通常,架构选择取决于
· 使用的编程语言
· 您正在开发的环境,以及
· 您必须保留的人力和财力资源 。
知道了每种设计风格的所有权衡之后,API设计人员可以选择最适合该项目的一种 。
由于RPC紧密耦合,因此可用于内部微服务,但对于强大的外部API或API服务而言,它不是一种选择 。
SOAP很麻烦,但是其丰富的安全功能对于计费操作,预订系统和付款仍然是不可替代的 。
REST具有API的最高抽象度和最佳建模 。但是在网络和聊天环境中,这往往会比较沉重-如果您正在使用移动设备,这将是不利的一面 。
GraphQL在数据获取方面迈出了一大步,但并不是每个人都有足够的时间和精力来掌握它 。
归根结底,尝试一些具有特定样式的小型用例,并查看它是否适合您的用例并解决您的问题是有意义的 。如果可以,请尝试扩展并查看它是否适合更多用例 。
最初发布于AltexSoft技术博客"比较API体系结构样式:SOAP vs REST vs GraphQL vs RPC"
(本文翻译自Sanjeet Chatterjee的文章《Comparing API Architectural Styles: SOAP vs REST vs GraphQL vs RPC》,参考:https://levelup.gitconnected.com/comparing-api-architectural-styles-soap-vs-rest-vs-graphql-vs-rpc-84a3720adefa)
推荐阅读
- Kafka实时API探秘
- 电脑指纹怎么设置?按照以下步骤操作,轻松设置指纹锁
- 狗狗不喜欢剪指甲 狗狗剪指甲不配合怎么办
- 可以玩吃鸡的一体机电脑推荐 一体机玩吃鸡怎么样
- 才买的茶有霉味怎么办,买茶的时候如何区分干仓与湿仓
- 白牡丹茶饼怎么冲泡,金坛雀舌怎么冲泡
- 白牡丹茶味道怎么样,白牡丹功效及作用介绍
- 普洱生茶怎么发酵,普洱生茶和熟茶的冲泡温度
- 国际象棋怎么玩 国际象棋具体教程
- 家里下雨了 住高层怎么知道下雨