Restful API 纠结之处

2018-10-19  本文已影响0人  monvhh

简介Restful API

请求路径“终点”(endpoint),以资源(resource)为单位。
以HTTP方法为请求资源的动作。比如get就是拿资源,post就是新建资源,put是更新资源。
过滤信息在请求路径中以querystring的方式存在,eg. ?limit=10&type=1

看起来很美,实践起来?

问题1 实际的API很难明确定义资源

经常有需要将不同资源糅合在一个API返回,现实生活中的场景总是比理想状态更复杂。
可能对服务层类似于SOA服务,会相对可用一点。
对于面对终端的接口,终端当然希望少发http请求,这样不可避免要糅合。

问题2 有的资源Get时,不是通过简单的id,而是复杂一坨参数

比如 查航班列表,需要日期、出发地到达地、舱位
如果是多程,还有一个数组的出发地到达地出发时间到达时间,目前查第几程等等
这querystring,会很长(先不考虑超长和安全性),而且,get传参,通过querystring,
首先数组得通过特殊方式处理传参和接收参数(express原生好像就处理过接收到的参数了);
其次后端拿到的每个字段,都将是字符串,就算是JSON.parse,对象中的每个字段还是字符串,所以前端传的true,你收到的是‘true‘。

在语义化和实用性之间,便很纠结。

问题3 表单提交的同时跳转页面,应该分成两步,post表单然后get渲染页面吗?还是应该form post直接两件事一步做了?

上一篇下一篇

猜你喜欢

热点阅读