例如: User(id, name, phone, email)
而请求时,只需要 id,name,phone
现在是让客户端传递 field 字段实现,但感觉不太好
![]() | 1 justseemore 2021-05-11 15:50:30 +08:00 这个不是接口返回直接约定的么。 |
![]() | 2 iplayio2019 2021-05-11 15:53:37 +08:00 让客户端传递 field 还真有这么实现的 |
4 billly OP @iplayio2019 自己也感觉不太好 但也没想到更优雅的方式 |
![]() | 5 miokowsw 2021-05-11 16:31:26 +08:00 试一下 GraphQL |
6 ChoateYao 2021-05-11 16:35:01 +08:00 就是让客户端请求 field 和 expect 来确定要哪些字段和剔除哪些字段 |
![]() | 7 justseemore 2021-05-11 17:57:42 +08:00 @billly 。。变改就行了啊。。 |
![]() | 8 ch2 2021-05-11 18:02:59 +08:00 ![]() GraphQL 是标准的解法 |
![]() | 9 no1xsyzy 2021-05-11 21:17:31 +08:00 ![]() 你全传过去,不需要的部分客户端抛弃不行吗( |
![]() | 10 xuanbg 2021-05-11 21:28:56 +08:00 GraphQL 的够了啊! 9 楼才是正解。后端全给,前端要不要用随意。一般后端设计数据结构的时候是根据原型来的,给过去的字段前端不用很少见。 |
11 CamD 2021-05-12 00:04:08 +08:00 via iPhone graphql |
![]() | 12 tonyaiken 2021-05-12 00:11:17 +08:00 via iPhone fields, projection 都行 |
13 renmu123 2021-05-12 00:25:49 +08:00 via Android 都给就完事了,前端要啥自己拼去 |
14 kaneg 2021-05-12 01:25:21 +08:00 via iPhone OData 有规范支持。用户可以先获取 metadata 来拿到字段定义,之后就可以有选择性返回指定的自动 |
![]() | 15 IvanLi127 2021-05-12 09:02:57 +08:00 via Android 我之前做都是通过传递一个用途的字段来控制返回的字段。比如下拉就是 forDropdown=true 。现在我用 GraphQL 。 |
16 KingOfUSA 2021-05-12 09:12:53 +08:00 如果是 java 系的话,可以试试这个库 https://github.com/ksprider/Surgical |
17 KingOfUSA 2021-05-12 09:19:32 +08:00 @GetMapping("/demo0") @JSON("no,name,age,zoo(name,address,city(id,name))") 只会返回 no 、name 、age 以及 zoo 对象里面的 name 、address,以及 zoo 下面的 city 里面的 id 、name @GetMapping("/demo1") @JSON("no,name,zoo(name)") 只会返回 no 、name 以及 zoo 对象里面的 name @GetMapping("/demo2") @JSON("no,name") 只会返回 no 、name |
![]() | 18 ganning 2021-05-12 09:31:54 +08:00 fastjson 里好像有个过滤器,可以看一下 |
![]() | 19 lanten 2021-05-12 09:45:07 +08:00 你们那么多用 GraphQL 的大佬,我想问一句,字符串模板里面怎么整合 TS 类型? |
20 buffzty 2021-05-12 10:28:48 +08:00 我的做法是 前端传 scene ,后端根据 scene 返回不同的数据结构. 跟 graphQL 类似. 对 ts 友好. |
![]() | 21 shyling 2021-05-12 10:48:51 +08:00 这不就是 GraphQL |
22 ebingtel 2021-05-12 13:53:51 +08:00 @billly 没啥问题 能保证安全的话,https://github.com/Tencent/APIJSON 这个 nb 的开源 也这么搞 |
![]() | 23 lepig 2021-05-12 14:08:14 +08:00 楼主那么多推荐 GraphQL 的,我就想问一句 你们是自己在生产环境用过还是想让别人为你踩坑 |
![]() | 24 radiocontroller 2021-05-12 14:26:48 +08:00 不了解 GraphQL 或者考虑是否用 GraphQL 的,可以看下这个: https://ruby-china.org/topics/41141 |