1
111111111111 2018-02-22 18:39:29 +08:00
rest 的版本控制问题是一个痛?是否愿意分享一下遇到哪些痛
|
2
ns2250225 OP @111111111111 就是写接口的时候,要带上 v1,v2 等的版本号。。。
|
3
tomczhen 2018-02-22 22:39:53 +08:00 1
REST 主要的问题一个是数据有冗余,一个是请求多级关系数据查询是串行——必须先获取上级资源,再来获取子资源,版本基本上就三个方式:
URI - https://example.com/api/v2/foo Custom Header - api-version: 2 Accept Header - Accept: application/vnd.app.v2+json URI 直观,简单易懂,但是违背了同一个资源 URI 不变这个原则。放 Header 里面不直观,对队友有要求,(个人理解)自定义头和 Accept 头的区别是 Accept 更符合 Http 协议的设计。 REST 的优势在于 URI 明确,资源权限控制清晰。GraphQL 对外是灵活而强大,不过解决权限、性能问题对于后端而言复杂度是高于 REST 的——毕竟 REST 成熟的框架更多。 |
4
freemagico 2018-02-24 22:21:31 +08:00
学习了。请问楼主 graphQL 的多表查询要怎么实现呢?感觉 graphQL 的 schema 设计比较关键,我研究了一下还没什么心得……
|
5
ns2250225 OP @freemagico 关键是 model 里面定义好表的关系,然后直接查询的时候,同时查多张表的数据就好了
|
6
ns2250225 OP @freemagico 像这样:
query { allBooks { title{ title } author{ name } } allTitles { title } allAuthors{ name } } |
7
freemagico 2018-02-25 23:36:21 +08:00
@ns2250225 感谢回复,那其实多表查询对于后端来说依然是一样的查询过程吧,时间上并没有节省,只是前端接口定义的时候比较易懂。这么理解对嘛?
|