-
比如一个首页显示轮播信息、商品信息、浏览历史、推荐信息等等
接口开发时一些人会对这些信息每个单独封装为一个接口,毕竟也是遵循restful规范,这样导致了大量前台的接口调用,有时候前台会反馈说让少些一点接口。问题来了:1.1 接口到底该怎么写合适? 1.2 传统的不写接口时我们最开始也是只调用一个action拿到数据并传输到页面,也没有所谓的写很多的action 1.3 如果写很多的接口,传统的方式使用ajax去获取,那么表示在前台需要写大量的ajax操作获取数据
大家是怎么写的?
比如一个首页显示轮播信息、商品信息、浏览历史、推荐信息等等
接口开发时一些人会对这些信息每个单独封装为一个接口,毕竟也是遵循restful规范,这样导致了大量前台的接口调用,有时候前台会反馈说让少些一点接口。问题来了:
1.1 接口到底该怎么写合适?
1.2 传统的不写接口时我们最开始也是只调用一个action拿到数据并传输到页面,也没有所谓的写很多的action
1.3 如果写很多的接口,传统的方式使用ajax去获取,那么表示在前台需要写大量的ajax操作获取数据
大家是怎么写的?
1.1 接口到底该怎么写合适?
在没有给“合适”一个“标准”的情况下,怎么写都是合适的,怎么写也都是不合适的。
现实情况总是需要在各方权衡:
1.2 传统的不写接口时我们最开始也是只调用一个action拿到数据并传输到页面,也没有所谓的写很多的action
如果不知道为什么要做,那么“不做”我觉得是正确的一个选择。
1.3 如果写很多的接口,传统的方式使用ajax去获取,那么表示在前台需要写大量的ajax操作获取数据
/tools/multi-request
,它接收的参数大概是:{
request: [
{path: '/api/1/user/list', params: {page: 1}},
{path: '/api/1/topic/list', params: {page: 1}}
]
}
响应大概是:
{
code: 0,
data: [
{code: 0, data: {count: 100, itemList: [USER, USER, USER]}},
{code: 0, data: {count: 100, itemList: [TOPIC, TOPIC, TOPIC]}}
]
}
8 回答6.4k 阅读
1 回答4.2k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
解决方案: API Gateway
@路易港 在评论中对我的回答提出的质疑, 并且点了踩
这让我觉得我的回答太过于空泛了, 所以我编辑一下, 讲一下我对于
API Gateway
的理解API Gateway
是Amazon的项目, 所以就直接去Amazon找这个产品的功能这是Amazon推出的这个产品所能解决的问题
我们再来看一下Amazon的配图
可以看到, 网络请求的不再是你的服务, 而是
API Gateway
, 它负责定义你的请求的关联, 也就是题主所说的[一个接口所提供的内容], 在我看来, 它所解决的痛点就在这里, [利用 Amazon API Gateway 控制台,您可以定义 REST API 及其关联的资源和方法]至于其他的功能, 限流、授权、弹性、监控等等, 都是它附带解决的内容
'REST API'(这里我加个引号, 我认为大部分的 REST API 都只是 HTTP API 而已) 有一个很明显的问题, 就是对于资源的整合. 如果不整合, 客户端麻烦, 整合, 不符合 REST 架构. 现在的 WEB API 已经出现了许多解决方案,
API Gateway
是一个, Facebook 也出了一个GraphQL
, 这些解决方案都是很成熟的, 题主可以看一看