操作资源的表现形式来实现对资源的操作(Manipulation of resources through representations"):资源在服务器响应中应具有统一的表示形式。 API 使用者应该使用这些表示来修改服务器中的资源状态。
“Manipulation of resources through representations” 是 REST 架构风格的一个关键概念,它指的是客户端通过操作资源的表现形式来实现对资源的操作。
在 REST 中,资源是指网络上的任何东西,比如文本、图片、视频、数据库记录等等。每个资源都有一个唯一的标识符(URI),客户端可以通过这个标识符来访问资源。而资源的表现形式则是指资源的具体表现形式,比如文本可以是 HTML、XML、JSON 等格式,图片可以是 JPEG、PNG 等格式。客户端可以通过请求不同的表现形式来获取资源的不同表现形式。
在 REST 中,客户端通过对资源的表现形式进行操作来实现对资源的操作。比如,客户端可以通过 POST 请求来创建一个新的资源,请求的数据就是新资源的表现形式;通过 PUT 请求来更新一个资源,请求的数据也是资源的表现形式;通过 DELETE 请求来删除一个资源,请求的 URI 就是要删除的资源的标识符( 这个比如,不是特别的贴切 )。
因此,“Manipulation of resources through representations” 的含义就是客户端通过操作资源的表现形式来实现对资源的操作。这种方式使得客户端和服务器之间的通信更加灵活和可扩展。
超媒体作为应用程序状态的引擎(Hypermedia as the Engine of Application State):客户端应该只有应用程序的初始 URI。客户端应用程序应使用超链接动态驱动所有其他资源和交互。
具体来说,HATEOAS 原则要求 RESTful API 返回的响应中包含超媒体链接,这些链接描述了客户端可以采取的下一步操作。这些链接可以是任何类型的链接,例如 URL、表单、控件、status_code等,它们描述了客户端可以采取的操作以及如何执行这些操作。
通过使用 HATEOAS,RESTful API 可以将应用程序状态的控制权交给客户端,而不是服务器。这意味着客户端可以根据服务器返回的超媒体链接来决定下一步要采取的操作,而无需事先了解服务器的 API 或其他约定。这种方式可以使客户端和服务器之间的耦合更加松散,从而提高系统的可重用性和可扩展性。