RESTAPI:使用内容类型与自定义参数或端点
我正在为一个资源设计一个列表端点,该资源同时具有名为/transactions的资源的完整版本和轻型版本。默认情况下,响应将包括完整的资源,但还需要向客户端提供资源列表的“简化”版本 第一个选项是使用自定义参数(例如./transactions?summary=true) 第二个选项是使用自定义端点,尽管不是非常RESTful(例如/transactions/summary) 第三个选项是使用content type允许客户机声明替代的响应体格式。这看起来怎么样?(应用程序/json+摘要)?有没有这样做的好例子RESTAPI:使用内容类型与自定义参数或端点,api,rest,resources,Api,Rest,Resources,我正在为一个资源设计一个列表端点,该资源同时具有名为/transactions的资源的完整版本和轻型版本。默认情况下,响应将包括完整的资源,但还需要向客户端提供资源列表的“简化”版本 第一个选项是使用自定义参数(例如./transactions?summary=true) 第二个选项是使用自定义端点,尽管不是非常RESTful(例如/transactions/summary) 第三个选项是使用content type允许客户机声明替代的响应体格式。这看起来怎么样?(应用程序/json+摘要)?有
想到其他选项了吗?使用Accept/Content-Type头的第三个选项允许媒体类型作为数据的表示,与数据本身分离 github的API就是一个很好的例子: 它使用http头允许客户端选择数据的格式以及版本。因此,在您的情况下,请求可能类似于:
curlhttp://api.host.com/transactions -H“接受:应用程序/摘要+json”
响应将包含简化数据格式的主体和设置为application/summary+json
如果您想更迂腐一些,还可以使用供应商媒体类型,如application/vnd.yourcompany.summary+json
。在这种情况下,vnd
意味着媒体类型通常与特定于应用程序的媒体类型相关联
更多信息:
curlhttp://api.host.com/transactions -H“接受:应用程序/摘要+json”
响应将包含简化数据格式的主体和设置为application/summary+json
如果您想更迂腐一些,还可以使用供应商媒体类型,如application/vnd.yourcompany.summary+json
。在这种情况下,vnd
意味着媒体类型通常与特定于应用程序的媒体类型相关联
更多信息:
curlhttp://api.host.com/transactions -H“接受:应用程序/摘要+json”
响应将包含简化数据格式的主体和设置为application/summary+json
如果您想更迂腐一些,还可以使用供应商媒体类型,如application/vnd.yourcompany.summary+json
。在这种情况下,vnd
意味着媒体类型通常与特定于应用程序的媒体类型相关联
更多信息:
curlhttp://api.host.com/transactions -H“接受:应用程序/摘要+json”
响应将包含简化数据格式的主体和设置为application/summary+json
如果您想更迂腐一些,还可以使用供应商媒体类型,如application/vnd.yourcompany.summary+json
。在这种情况下,vnd
意味着媒体类型通常与特定于应用程序的媒体类型相关联
更多信息: