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

标签 java jquery html rest angularjs

也许这是一个新手问题,所以抱歉:)

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

  1. 第一页显示一个表格,其中显示文章标题(假设我们有“文章 ID”、“作者姓名”、“标题”)。 “文章 ID”列可点击
  2. 第二页显示一篇文章。

我希望能够从第一页单击 id 列,执行 GET 请求以获取文章的 JSON 对象,然后在单篇文章页面中很好地呈现它。我希望 GET 请求后的 url 类似于:`http://[web-server-name]/article/[id]

如果我正在编写一个静态页面,使用 jQuery 来获取 JSON 对象,那么 url 将不会采用我正在查找的资源格式。如果我从 REST 服务器返回 HTML,那么维护此类页面以及将逻辑与演示文稿耦合起来都会很丑陋。

正确的做法是什么? 谢谢!

最佳答案

您可以必须在同一位置声明方法 @Path但那个@Produces两种不同的 mime 类型,根据 Accept 选择好的一种。客户端发送的 header :

@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

关于java - 具有 RESTful 内容提供商的动态网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17081763/

相关文章:

javascript - html:在 anchor 中添加另一个类

java - 带有 Projection 的 Spring JPA native 查询给出 "ConverterNotFoundException"

java - 设置 LogBack Appender 的相对路径

javascript - 更改日期选择器语言不起作用

javascript - 在 if 语句中传递变量值作为条件

html - HTML 中的获取方法

javascript - 如何在 Sendbird 中使用 channel 处理程序

java - Java中的Quicksort算法程序

java - 不能使方法无效

jquery - 将字符串转换为数字并加一