繁体   English   中英

在RESTful Web服务中将对象作为arument传递

[英]Pass object as arument in RESTful web service

我正在创建一个简单类型的简单RESTful Web服务。 现在我想传递一个对象作为Web服务的参数,并将对象作为响应。 我的方案是,使用Jaxb将XML消息解析为对象,并将该对象作为Web服务请求发送。 在服务器端之后,它处理请求的对象并生成响应xml文件并将其作为对象发回。

在URL路径我给

 "http://localhost:8080/SampleWS/rest/checkXML/username=visolve&password=visolve" 

对于简单类型。 但是在对象中我不知道如何在URL中给出对象引用。 请帮我解决我的问题..

Regards

Bathakarai

只需定义一个非常好看的域对象。 JAXB和JAX-RS将完成剩下的工作。

JAXB。

@XmlRootElement
class Regards {

    @XmlElement
    private long sincerely;
}

JAX-RS。

@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@POST
@Path("/sincerely")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response sincerely(final Regards regards) {

    regards.setSincerely(System.currentTimeMillis());

    return Response.ok(regards).build();
}

虽然您当然可以在URL中包含整个XML内容,但我可能会回避它。

可以这样想:如果您在URL中对XML进行编码,则可能会在两端添加更多工作。 现在,服务器和客户端都需要知道如何正确构建URL,并检查以确保所有内容都正确排列。 如果您将来需要提供相同内容的JSON或YAML视图,该怎么办? 现在,您的URL可能还需要包含内容类型。 字符编码怎么样?

所有这一切,HTTP提供了一个很好的传输机制,已经解决了这些问题。 包含XML作为HTTP消息实体主体 ,并使用HTTP标头来标识您要发送的内容类型,字符编码等。这将同时工作(服务器和客户端都可以发回XML) /),并更好地利用HTTP。

这是一个相关的链接,可能有助于一些细节。 另一个

在一个侧面说明,请,请, 告诉我你不跨一个未加密的链接以纯文本形式发送用户的凭据计划。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM