我正在开发REST / JSON API。可以通过多种方式在JSON POST / PUT请求中显示可选值。
Q1。如果API客户端不想指定它们,那么在JSON请求中显示可选字段值的最佳方法是什么?
密码是可选的:选项1
{
"credentials": {
"username": "john.doe@acme.com",
"password": null
}
}
密码是可选的:选项2
{
"credentials": {
"username": "john.doe@acme.com",
}
}
密码是可选的:选项3
{
"credentials": {
"username": "john.doe@acme.com",
"password": ""
}
}
Q2。如果API客户端不想指定它们,那么在JSON请求中显示可选设置字段值的最佳方法是什么?
凭证是可选的:选项1
{
"credentials": null,
"attributes": {
"name": "John Doe",
"email": "john.doe@acme.com"
}
}
凭证是可选的:选项2
{
"credentials": {},
"attributes": {
"name": "John Doe",
"email": "john.doe@acme.com"
}
}
凭证是可选的:选项3
{
"attributes": {
"name": "John Doe",
"email": "john.doe@acme.com"
}
}
凭证是可选的:选项4
{
"credentials": {
"username": null,
"password": null
},
"attributes": {
"name": "John Doe",
"email": "john.doe@acme.com"
}
}
我在Java中使用RestEasy作为API服务器,使用RubyonRails网站作为客户端。
答案 0 :(得分:2)
答案在两种情况下都是一样的:这取决于你,但最常见的方法是完全关闭钥匙。没有什么比“完全没有”更能说“没事”了。
答案 1 :(得分:0)
在分析你的问题后..我猜你的第一个选项(1编辑“”而不是null)
{
"credentials": {
"username": "john.doe@acme.com",
"password": ""
}
}
是最好的方法,你可以使用其他但这是最容易阅读和解析...我可以使用值密码“”而不是null ...在代码中你可以验证if(password ==“”)这就是全部...
希望你能解决这个问题......
...问候