我们何时在API设计中使用Scope和QueryParam?

问题描述

我们有一个返回JSON输出的端点。很少有消费者要求此端点。但是一个特定的消费者只请求了一部分有效负载。因此,在这种情况下,我们应该使用范围进行授权还是对信息进行切片吗?

要求如下: / endpoint1(范围为user1)->指定{shape:square,area:16,perimeter:16}

/ endpoint1(范围为user2)->给出{shape:square}

当我们只希望共享少量信息时,可以使用范围吗?

我们还了解到QueryParam仅用于过滤,例如给所有具有正方形或矩形的形状。

我们的理解正确吗?

谢谢!

解决方法

您可以执行按范围进行操作,但是出于可见性原因(管理员,超级用户,用户,来宾),我宁愿这样做。对于您而言,我认为为一个客户添加范围是一个过大的选择。

我可能会那样做:

/endpoint1/shape

/endpoint1/?fields=shape

最后,这是一种基于意见的事情,因为所有方法都会导致预期的结果。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...