GraphQL获取多个资源,只用一个请求

GraphQL获取多个资源,只用一个请求

简单来说就是,多个接口的调用,可以放到一个http请求中来做,并且自定义数据返回的格式,包括指定变量名。

传统的REST请求,是一次http请求,只操作一个API的内容,如一个场景下需要查询用户信息,商品信息和订单信息。要么前端调三次接口,要么后端封装一个定制的接口。

示例:

graphql多次调用服务获取资源:
获取用户信息
query queryUserInfo {
    getUserInfoByID(userId:1890) {
        userName
        userAge
        mailbox
    }
}
获取商品信息
query queryProducts {
    getProducts(device:web) {
        productName
        productid
        sppu
        price
    }
}
获取订单信息
query queryOrders {
    getOrdersByUserId(userId:1890) {
        orderId
        orderNo
    }
}
以上内容,一次请求接口与搞定
query {
    user: getUserInfoByID(userId:1890) {
        userName
        userAge
        mailbox
    }
    products: getProducts(device:web) {
        productName
        productid
        sppu
        price
    }
    orders: getOrdersByUserId(userId:1890) {
        orderId
        orderNo
    }
}

这个特点在移动端弱网环境下,也能高效的加载数据;而对于后端,也会相应减少Servlet线程是使用次数,可以有更高的系统吞吐量;另一个方向,一次请求多个接口,也可以采用异步执行,提升服务端的响应效率…

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容