gpt4 book ai didi

java - 如果客户端除了起始 url 之外不应该有任何先验知识,你如何构建 REST 客户端?

转载 作者:行者123 更新时间:2023-12-04 05:34:57 26 4
gpt4 key购买 nike

我已经开始开发一个现有的 REST 应用程序,但我无法理解如何制作一个 RESTful 客户端?

wikipedia上的页面陈述如下

“客户端仅通过服务器在超媒体中动态识别的操作(例如通过超文本中的超链接)进行状态转换。除了应用程序的简单固定入口点外,客户端不假定任何特定操作可用对于超出先前从服务器收到的陈述中描述的任何特定资源。”

如果所有客户端都可以假定是一个起始 url,那么除了在浏览器中运行的纯 HTTP rest 服务之外,客户端怎么可能知道如何显示返回的任何信息。

例如,java/flash 客户端必须假设返回的数据是什么,以便知道如何显示它,当然,实现将不再是 restful 的??

感谢您的任何见解。

jetty

最佳答案

状态转换和告诉客户端如何显示信息是有区别的。在 HTTP 中,数据类型通常由 Content-Type header 字段确定,客户端根据该字段决定如何显示它(例如,浏览器会请求 text/html 和呈现结果)。 REST 不假设数据是自描述的,只是假设它们应该通过 URI 进行语义连接。 wiki 页面指出,如果您在 http://example.com 请求 application/json,它将返回如下内容:

{
"users" : "http://example.com/users",
"todos" : "http://example.com/todos"
}

现在您知道要请求什么 URI 来获取待办事项列表以及对 http://example.com/todos 的请求可能会返回如下内容:

[
{
"description" : "Do dishes",
"user" : "http://example.com/users/20"
},
{
"description" : "Do dishes",
"user" : "http://example.com/users/42"
}
]

用户 key 不只是返回一个 id,而是引用已连接用户资源的实际 URI,因此您可以直接请求它。

关于java - 如果客户端除了起始 url 之外不应该有任何先验知识,你如何构建 REST 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12082704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com