如果有一个REST资源我想要监视来自其他客户端的更改或修改,那么最好的(也是最RESTful)方式是什么?
我这样做的一个想法是提供特定的资源来保持连接打开,而不是在资源不存在的情况下立即返回.例如,给定资源:
/game/17/playerToMove
Run Code Online (Sandbox Code Playgroud)
这个资源上的"GET"可能会告诉我轮到我的对手了.我可能会注意到移动号码(比如5)并试图检索下一步行动,而不是不断地轮询这个资源以找出轮到我移动的时间:
/game/17/move/5
Run Code Online (Sandbox Code Playgroud)
在"正常"REST模型中,似乎对此URL的GET请求将返回404(未找到)错误.但是,如果相反,服务器保持连接打开,直到我的对手发挥他的移动,即:
PUT /game/17/move/5
Run Code Online (Sandbox Code Playgroud)
然后服务器可以将我的对手PUT的内容返回到该资源.这将为我提供我需要的数据,以及一种通知我的对手何时移动而不需要轮询.
这种方案是RESTful吗?或者它违反了某种REST原则?
使用Apache的commons-httpclient for Java,将查询参数添加到GetMethod实例的最佳方法是什么?如果我使用PostMethod,它非常简单:
PostMethod method = new PostMethod();
method.addParameter("key", "value");
Run Code Online (Sandbox Code Playgroud)
但是,GetMethod没有"addParameter"方法.我发现这有效:
GetMethod method = new GetMethod("http://www.example.com/page");
method.setQueryString(new NameValuePair[] {
new NameValuePair("key", "value")
});
Run Code Online (Sandbox Code Playgroud)
但是,我见过的大多数示例都是将参数直接硬编码到URL中,例如:
GetMethod method = new GetMethod("http://www.example.com/page?key=value");
Run Code Online (Sandbox Code Playgroud)
或者对查询字符串进行硬编码,例如:
GetMethod method = new GetMethod("http://www.example.com/page");
method.setQueryString("?key=value");
Run Code Online (Sandbox Code Playgroud)
这些模式中的一种是首选吗?为什么PostMethod和GetMethod之间的API差异?那些用于其他HttpMethodParams方法的是什么?
我正在编写一个iPhone网络应用程序,我想在页面加载时自动聚焦文本字段,然后调出键盘.通常的Javascript:
input.focus();
Run Code Online (Sandbox Code Playgroud)
似乎不起作用.有任何想法吗?
使用Java中的sqlite获取最后插入的id的最佳方法是什么?谷歌给了我不同的答案 - 有人说选择last-insert-rowid; 其他人说call statement.getGeneratedKeys().什么是最好的路线?(我只是想返回id,而不是用于其他插入或任何东西.)
您如何将回合制游戏服务器建模为RESTful API?例如,国际象棋服务器,您可以在其中与同一API的另一个客户端进行国际象棋游戏.您需要某种方式来请求和与其他客户协商游戏,以及某种方式来玩游戏的各个动作.
这是REST(RESTful)API的良好候选者吗?或者这应该以不同的方式建模?
BufferedReader in;
String line;
while ((line = in.readLine() != null) {
processor.doStuffWith(line);
}
Run Code Online (Sandbox Code Playgroud)
这就是我逐行处理文件的方法.但是,在这种情况下,我想在每次迭代中向处理器发送两行文本.(我正在处理的文本文件本质上将一条记录存储在两行上,所以我每次都会向处理器发送一条记录.)
在Java中这样做的最佳方法是什么?
java ×3
rest ×2
chess ×1
fileparsing ×1
getmethod ×1
html ×1
httpclient ×1
iphone ×1
javascript ×1
jdbc ×1
long-polling ×1
polling ×1
sqlite ×1
text-files ×1