Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';在restful web服务中公开键值对的正确方法是什么?_Java_Rest_Jersey_Restful Url_Restful Architecture - Fatal编程技术网

Java 什么';在restful web服务中公开键值对的正确方法是什么?

Java 什么';在restful web服务中公开键值对的正确方法是什么?,java,rest,jersey,restful-url,restful-architecture,Java,Rest,Jersey,Restful Url,Restful Architecture,我正在构建一个restful web服务,而我的后端恰好公开了一个键值对对象。例如,你可以说: String value = transientObject.get("key"); 现在,它的url如下所示: GET /transientObject/key public class KeyValue { private String key; private String value; } 要设置值,请执行以下操作: POST /transientObject/key

我正在构建一个restful web服务,而我的后端恰好公开了一个键值对对象。例如,你可以说:

String value = transientObject.get("key");
现在,它的url如下所示:

GET /transientObject/key
public class KeyValue {

    private String key;
    private String value;

}
要设置值,请执行以下操作:

POST /transientObject/key
并在正文中传递

在我的api中还有很多其他调用返回和接受复杂对象,但这一个显然不适合这种模式。我可以更改api,以便GET和POST返回并接受如下所示的新对象:

GET /transientObject/key
public class KeyValue {

    private String key;
    private String value;

}
这将与我的api的其余部分更加一致,但它确实使这个调用变得有点烦人:现在,当您可以发送/检索值时,您必须构造/解构一个对象


为了保持一致性,我应该坚持当前的方式还是更改api以接受对象?

如果键是整数(例如,自动递增的ID),而资源只是
字符串值
,那么您已经在那里了。我觉得感觉不一样,因为键是字符串。实际上,它与修改
/user/1
(如果用户只是一个名称/字符串)没有什么不同。@SimeonVisser这是有道理的(尽管我不知道我是否喜欢这个类比。很难想象一个用户不是一个复杂的对象),这不是最好的示例,但它展示了透视图。怎么样
/username/1
?@simeonviser是的,这更有意义,谢谢