将复杂类实例传递给 REST Web 服务的最佳实践是什么?
我目前正在使用 Netbeans 和 Glassfish 编写 java REST Web 服务。 WebService 是 SQL 数据库上的 CRUD Web 服务。 Netbeans 通过实现简单的 CRUD 方法为我完成了大部分工作。 但我仍然有一个主要问题:传递复杂对象(如日期)的最佳方式是什么? 例如:我想编写函数@GET getLessonsByDate(Date start,Date end)。 根据我的阅读,我可以使用 @Consume 注释、@QueryParam 注释或 @PathParam。什么是最好的?如果需要两个日期怎么办?如果我还需要另一种复杂数据类型怎么办?
请帮我...
I am currently writing a java REST Web Service using Netbeans and Glassfish.
The WebService is a CRUD web service on an SQL database.
Netbeans did most of the work for me by implementing Simple CRUD methods.
But I still have 1 major concern: What is the best way to pass a complex object (like a date)?
for example: I want to write the function @GET getLessonsByDate(Date start,Date end).
From what I read, I can either use the @Consume annotation, @QueryParam annotation or @PathParam. What is best? what if need two dates? what if I also need another Complex data type?
please help me out...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我会使用 JAXB。
(http://en.wikipedia.org/wiki/Java_Architecture_for_XML_Binding)
这是一个很好的教程,应该可以帮助你:
http://www.vogella.de/articles/REST/article.html
I would use JAXB.
(http://en.wikipedia.org/wiki/Java_Architecture_for_XML_Binding)
Here is a nice tutorial that should help you:
http://www.vogella.de/articles/REST/article.html
Web 服务基于字符串进行操作。最终,您的所有数据都将被格式化为字符串,因此您最好自己进行格式化,以便获得控制。
我会以标准方式格式化您的日期,例如 YYYY-MM-DD HH-MM-SS。至于其他数据类型,它确实取决于类型,但 JSON 通常是一个不错的选择。世界正在慢慢从 XML 作为序列化格式转向 JSON。
Web services operate on strings. Ultimately all of your data is going to be formatted as a string, so you're better off doing the formatting yourself so you get control.
I would format your dates in a standard way, like YYYY-MM-DD HH-MM-SS. As for other data types, it's really type-dependent, but JSON is often a good choice. The world is slowly moving away from XML as a serialization format toward JSON.
可以使用json来传递参数。
@Consumes("application/json") 注解允许使用 Json。
You can use json to pass the parameters.
@Consumes("application/json") annotation enable to use the Json.