想象有两个客户:
两个客户端都向GraphQL服务发送相同的请求。
均获得结果。
两个结果应该相同,还是两个客户得到不同的结果都可以。
换句话说:如果客户A收到100个结果,客户B收到30个结果,是否违反规范或最佳做法?
我问过GraphQL(SQL)的“老大哥”在做什么:Same query, different result (depending on user's permissions)
我多次有相同的需求,我只是将不同的结果返回给客户。
在这种情况下,不同表示客户端B收到根据权限过滤的某些元素列表,而具有完全权限的客户端收到未过滤的列表。
我没有发现这种方法有什么问题。如果您完全阻止了对客户B的请求-我认为这是错误的,那么他毕竟可以看到一些结果。
按照定义,这不是问题。与客户端B相比,客户端A似乎有权查看70个其他结果。