HATEOAS用于使用RESTful Web API的基于浏览器的客户端

HATEOAS用于使用RESTful Web API的基于浏览器的客户端,rest,asp.net-web-api,hateoas,Rest,Asp.net Web Api,Hateoas,我目前正在ASP.NET中设计一个RESTful API,还将设计一个基于浏览器的客户端,该客户端将使用此RESTful API(也使用ASP.NET)。现在,我希望客户机和API都能从同一个解决方案中得到服务 我很难理解的一个概念是,如何在客户端和API之间进行逻辑分离,而不影响客户端页面映射与这些页面中显示的数据(来自API)的同步。从基于浏览器的应用程序的基本性质来看,它是以RESTful方式提供服务的;通过单个入口点和HATEOAS发现其他客户端页面。此外,使用RESTful API,在

我目前正在ASP.NET中设计一个RESTful API,还将设计一个基于浏览器的客户端,该客户端将使用此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中的链接仅用于页面时,如何让客户端知道如何获取相应屏幕的数据

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


此外,鉴于我对我的理解的解释,你能看到在我的设计中我可能没有考虑到的其他方面的休息吗?还是我完全错了?

< P>我认为你需要使用XHTML作为媒体类型而不是JSON,并帮助你使用Link。< /P>
您可以点击Jon Moore描述使用XHTML作为媒体类型而不是JSON的链接。

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