【问题标题】:HATEOAS For a Browser-Based Client Consuming a RESTful Web APIHATEOAS 用于使用 RESTful Web API 的基于浏览器的客户端
【发布时间】:2015-06-03 16:29:56
【问题描述】:

我目前正在 ASP.NET 中设计一个 RESTful API,并且还将设计 1 个基于浏览器的客户端,该客户端将使用这个 RESTful API(也使用 ASP.NET)。目前,我希望客户端和 API 都由同一个解决方案提供服务。

我难以理解的一个概念是,如何在不影响客户端页面映射与显示在这些页面中的数据(来自 API)的同步的情况下,在客户端和 API 之间进行逻辑分离.从基于浏览器的应用程序的基本性质来看,它以 RESTful 方式提供服务;通过单个入口点和 HATEOAS 发现其他客户端页面。此外,使用 RESTful API,资源(应用程序数据)可以在运行时通过单个入口点和 HATEOAS 发现。

对我来说,这个概念翻译如下:

对于客户:

欢迎页面(我的客户入口点):www.example.com/home

在此页面的 HTML 中,我有以下链接:

www.example.com/profilePage
www.example.com/contactsPage

等等……

对于 API:

入口点:

www.api.example.com

我的 JSON 结果(或其他媒体类型响应)包含指向以下内容的链接:

www.api.example.com/resourceToBeDisplayedOnProfilePage
www.api.example.com/resourceToBeDisplayedOnContactsPage

到目前为止,我的理解是否正确?当每个页面的 HTML 中的链接纯粹用于页面时,如何让客户端知道如何获取相应屏幕的数据?

(我进行这种分离的动机是出于可伸缩性和性能目的。如果能够缓存客户端应用程序页面的布局、样式和脚本,而无需这些页面显示的数据的上下文,那就太好了。我预计页面布局的停滞将远远大于可以在这些页面中显示的数据,因此允许我将页面缓存更长的时间。)

另外,鉴于我对我的理解的解释,您能否看到 REST 的任何其他方面我可能在我的设计中可能没有考虑到,或者完全错了?

【问题讨论】:

  • 我认为这个链接会对你有所帮助...LINK。他们使用 XHTML 作为媒体类型,而不是我认为你需要的 JSON。
  • @Garry:我相信你是对的。如果您将此作为答案发布,我会接受。

标签: rest asp.net-web-api hateoas


【解决方案1】:

我认为您需要使用 XHTML 作为媒体类型而不是 JSON,这将帮助您处理链接。

您可以点击此链接Session: Hypermedia APIs,其中 Jon Moore 描述了使用 XHTML 作为媒体类型而不是 JSON。

【讨论】:

    猜你喜欢
    • 2016-05-06
    • 2011-01-01
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多