我正在定义一个RESTful WebService在Java。在RESTful WebServices中传递一个URL作为参数
它输入:
- 一个用户名(例如,
jdoe
); - 和URL(例如:
https://blablablabla.io/sample?boh=mah
)。
通过使用得到HTTP协议的方法,它应产生一个JSON
文件。
哪个是传递这些参数的最佳方法?
在这种特殊情况下,为了正确传递一个URL作为参数,是否需要遵循一个最佳实践?
我正在定义一个RESTful WebService在Java。在RESTful WebServices中传递一个URL作为参数
它输入:
jdoe
);https://blablablabla.io/sample?boh=mah
)。通过使用得到HTTP协议的方法,它应产生一个JSON
文件。
哪个是传递这些参数的最佳方法?
在这种特殊情况下,为了正确传递一个URL作为参数,是否需要遵循一个最佳实践?
必须先对其进行编码,可以使用
URLEncoder.encode("url");
然后,我应该将它作为QueryParam传递吗? – vdenotaris 2014-10-16 14:36:30
没错,除非你想把它作为POST数据过去。 – 2014-10-17 17:15:51
如果要定义一个http GET
方法,然后向它传递参数是通过URI查询字符串的唯一途径(即?x=y&...
) 。因为GET
调用不能接收消息正文。
如果您想传递更复杂的信息,您需要使用POST
,PUT
或其他一些方法。虽然,如果你实际上只是得到信息(语义),那么你不应该使用任何东西,但GET
。你
因此,我应该通过URL作为queryparam或pathparam? – vdenotaris 2014-10-16 15:16:20
@vdenotaris“我建议在路径中放入所有必需的参数,任何可选参数几乎肯定都是查询字符串参数。”请参阅:[此答案](http://stackoverflow.com/a/11569077/2479481) – 2014-10-16 15:18:28
也可以使用的路径参数
这是例如
@Path("/users")
public class UserResorce {
@GET
@Path("/{username}")
@Produces(MediaType.APPLICATION_JSON)
public String getUser(@PathParam("username") String username)){
}
}
The url is http://domain_name/your_application_path/users/username
请在回答前阅读问题。 – vdenotaris 2014-10-16 15:11:47
FYI:有一个在Dropwizard,你有一个简单的REST框架,包括码头和其他有用的东西。易于使用,你有一个很好的描述如何开始 - > http://dropwizard.io/getting-started.html – user3280180 2014-10-16 14:32:49
我还没有在JBoss上使用RESTEasy。 – vdenotaris 2014-10-16 14:39:50