REST 资源可以 point/wrap 另一个外部 REST API 吗?
Can a REST resource point/wrap another external REST API?
我想要这样的 URI /car/toyota
,但是我不希望汽车资源映射到数据库 table 等。相反,我希望 car
只是用于信息检索的资源(即没有 POST
、PUT
或 DELETE
),并且 /car/toyota/
会在其他地方检索该数据,比如通过另一个提供此信息的 Web 服务器上的另一个 REST API。
这个设计好吗?
这可能属于 https://softwareengineering.stackexchange.com/
也就是说,这个问题完全取决于您发出 REST 请求的环境的基础架构。如果您有能力在提供信息的 Web 服务器上控制 REST API,那么就没有理由将 API 包装在另一个 API 中。所有的呼叫转移和从一种请求格式转换为另一种请求格式的潜在必要性实际上只会增加不必要的开销。
就是说,如果您正在访问一个您无法重新格式化的 API,或者如果您正在访问一个您不希望客户端服务器通信的 API直接,然后有一个潜在的设计优势,可以将不同的 REST API 包装在您自己的只读 API.
中
不幸的是,如果没有对整个体系结构和您要解决的问题的清晰了解,就很难确定包装 API 是否是一个好的设计。我唯一的建议是,如果可以的话,首选方法是编辑现有的 API,但这并不总是可行的。
我想要这样的 URI /car/toyota
,但是我不希望汽车资源映射到数据库 table 等。相反,我希望 car
只是用于信息检索的资源(即没有 POST
、PUT
或 DELETE
),并且 /car/toyota/
会在其他地方检索该数据,比如通过另一个提供此信息的 Web 服务器上的另一个 REST API。
这个设计好吗?
这可能属于 https://softwareengineering.stackexchange.com/
也就是说,这个问题完全取决于您发出 REST 请求的环境的基础架构。如果您有能力在提供信息的 Web 服务器上控制 REST API,那么就没有理由将 API 包装在另一个 API 中。所有的呼叫转移和从一种请求格式转换为另一种请求格式的潜在必要性实际上只会增加不必要的开销。
就是说,如果您正在访问一个您无法重新格式化的 API,或者如果您正在访问一个您不希望客户端服务器通信的 API直接,然后有一个潜在的设计优势,可以将不同的 REST API 包装在您自己的只读 API.
中不幸的是,如果没有对整个体系结构和您要解决的问题的清晰了解,就很难确定包装 API 是否是一个好的设计。我唯一的建议是,如果可以的话,首选方法是编辑现有的 API,但这并不总是可行的。