我手头有这个场景:
我的主要问题:哪个更好 - 发送int值或字符串?我可以看到这两种方法的好处。
有没有办法避免双方都持有枚举?我不熟悉实际上有用的那个。
谢谢!
答案 0 :(得分:1)
如果API服务器维护枚举,则客户端可以通过以下方式获取它:
GET /enums
...将返回枚举值列表:
[
{ "id" : "1001", "value" : "enum-item-1" },
{ "id" : "1002", "value" : "enum-item-2" },
...
{ "id" : "100N", "value" : "enum-item-3" },
]
因此允许客户端获取其中一个枚举项:
GET /enums/1017
或者也许对它执行操作:
POST /enums/1017/disable
通常,只能通过其唯一ID引用枚举项 - 如果客户端始终通过查询服务器的枚举列表来启动,则无需在客户端和服务器上维护枚举。
但是 - 如果您的商业案例中的价值观永远是唯一的,并且有令人信服的理由让您有更好的理由。人类可读的URL,可以使用:
GET /enums/enum-item-26
通常,这不是最佳实践,因为枚举项值可能具有商业含义,因此可能会发生变化。尽管目前看来不太可能。