我应该为UPDATE
(PUT
)和DELETE
(例如产品成功更新)设置什么状态代码?
我有一个.net开发背景,但对Java世界来说相对较新.我们已经开始使用JAX-RS开发RESTful服务(公共Web API),主要由移动平台(Android,iPhone,Windows Phone等)使用.
例如,Play-framework支持这样的RESTful服务:RESTful on Play!骨架
这与Jax-RS Jersey实施相比如何?像Play这样的框架是否会在泽西岛附近运行,因为它的所有功能都很酷,而且它也有REST吗?
开发人员的工作效率很重要,但正确的实现也是如此.也许使用MVC框架仅用于REST服务是"错误的"?
请注意,只有RESTful服务,根本没有UI组件.
我对这个问题中使用的许多概念和技术都相当新,所以我希望对社区初学者有一点了解和帮助.我正在使用Play Framework 2.1.3版,我需要将数据POST到RESTful Web服务,以便可以将其插入远程数据库.将返回XML响应,指示成功或失败.
我相信您知道Play Framework的文档非常缺乏,对初学者没有任何帮助,因此我不确定如何在考虑最佳实践的情况下完成此任务.我正在寻找这个问题的Java解决方案,我目前没有时间学习Scala语言.我对Web服务的经验相当有限,通常我会在我的应用程序中实现DAO设计模式(或根据需要使用许多可用的ORM库之一)并使用JDBC直接连接到数据库.这不是一个选择.
我的第一个问题是,是否有推荐的访问Web服务的设计模式?然后,考虑到Play MVC框架,如何最好地实现这样的设计模式,打包数据(假设应用程序已经捕获并验证了用户的数据),将其发送出去并将响应处理回用户?
我知道这是一个相当冗长的问题,但我的目的是为初学者创建一个知识库,他们可以轻松地获得有限的经验,阅读,理解和复制他们在这里找到的东西,以产生一个有效的解决方案.在广泛搜索网页后,我发现了一些脱节的片段,但没有具体涉及这些技术,也没有最新的教程.感谢您的时间.
a lot of frameworks on the JVM platform have grown big and in my opinion a bit messy. Some J2EE projects I was involved in had almost as many configuration files as source code files. Sure, one can argue that’s always up to the developer but I tend to prefer framework and tools with a clear structure and maybe even some borders to make sure everyone uses the same style and architecture
What are the best frameworks for implementing server …
这是我的Java代码:
@POST
@Path("/sumPost")
@Produces(MediaType.TEXT_PLAIN)
public String sumPost(@QueryParam(value = "x") int x,
@QueryParam(value = "y") int y) {
System.out.println("x = " + x);
System.out.println("y = " + y);
return (x + y) + "\n";
}
Run Code Online (Sandbox Code Playgroud)
我这样称呼它:
curl -XPOST "http://localhost:8080/CurlServer/curl/curltutorial/sumPost" -d 'x:5&y:3'
Run Code Online (Sandbox Code Playgroud)
问题是System.out.println
呼叫一直张贴零零,看来我没有正确传递 x 和 y。
得到答复后,我将请求更改为:
curl -d '{"x" : 4, "y":3}' "http://localhost:8080/CurlServer/curl/curltutorial/sumPost" -H "Content-Type:application/json" -H "Accept:text/plain" --include
Run Code Online (Sandbox Code Playgroud)
服务是:
@POST
@Path("/sumPost")
@Produces(MediaType.TEXT_PLAIN)
@Consumes(MediaType.APPLICATION_JSON)
public String sumPost(@QueryParam(value = "x") int x,
@QueryParam(value = "y") int y) {
System.out.println("sumPost");
System.out.println("x …
Run Code Online (Sandbox Code Playgroud)