具有RESTful内容提供商的动态网页

时间:2013-06-13 07:43:29

标签: java jquery html rest angularjs

也许这是一个新手问题,所以很遗憾:)

我有一个返回JSON对象的REST API。我正在尝试用2页构建一个网站:

  1. 第一页提供了一个展示文章标题的表格(假设我们有'文章ID','作者姓名','标题')。 “文章ID”列可点击
  2. 第二页介绍一篇文章。
  3. 我希望能够从第一页单击id列,执行GET请求以获取文章的JSON对象,然后在单篇文章页面中很好地呈现它。我想在GET请求之后的URL是这样的:`http:// [web-server-name] / article / [id]

    如果我正在编写静态页面,则使用jQuery来获取JSON对象,那么url将不会处于我正在寻找的资源格式中。如果我将从REST服务器返回HTML,那么维护这样的页面并将逻辑与演示文稿结合起来将是丑陋的。

    这样做的正确方法是什么? 谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用相同@Path@Produces两种不同mime类型声明的方法,根据客户端发送的Accept标头选择好的方法:

@GET
@Path("/article/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Response getArticle(@PathParam("id") long id) {
       Article myArticle = getArticleById(id);
       return Response.ok(myArticle);
}

@GET
@Path("/article/{id}")
@Produces(MediaType.TEXT_HTML)
public Response getArticleHtml(@PathParam("id") long id) {
    InputStream myHtml = getClass().getClassLoader().getResourceAsStream("/path/to/html.html");
    return Response.ok(myHtml).build();
}

但是,让你的Jax-RS实现服务于它不适合的静态资源。 或者您可以使用单页Javascript框架,如AngularJS