Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RESTAPI:使用内容类型与自定义参数或端点_Api_Rest_Resources - Fatal编程技术网

RESTAPI:使用内容类型与自定义参数或端点

RESTAPI:使用内容类型与自定义参数或端点,api,rest,resources,Api,Rest,Resources,我正在为一个资源设计一个列表端点,该资源同时具有名为/transactions的资源的完整版本和轻型版本。默认情况下,响应将包括完整的资源,但还需要向客户端提供资源列表的“简化”版本 第一个选项是使用自定义参数(例如./transactions?summary=true) 第二个选项是使用自定义端点,尽管不是非常RESTful(例如/transactions/summary) 第三个选项是使用content type允许客户机声明替代的响应体格式。这看起来怎么样?(应用程序/json+摘要)?有

我正在为一个资源设计一个列表端点,该资源同时具有名为/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
意味着媒体类型通常与特定于应用程序的媒体类型相关联

更多信息:


使用Accept/Content-Type头的第三个选项允许媒体类型作为数据的表示,与数据本身分离

github的API就是一个很好的例子:

它使用http头允许客户端选择数据的格式以及版本。因此,在您的情况下,请求可能类似于:

curlhttp://api.host.com/transactions -H“接受:应用程序/摘要+json”

响应将包含简化数据格式的主体和设置为
application/summary+json

如果您想更迂腐一些,还可以使用供应商媒体类型,如
application/vnd.yourcompany.summary+json
。在这种情况下,
vnd
意味着媒体类型通常与特定于应用程序的媒体类型相关联

更多信息:


使用Accept/Content-Type头的第三个选项允许媒体类型作为数据的表示,与数据本身分离

github的API就是一个很好的例子:

它使用http头允许客户端选择数据的格式以及版本。因此,在您的情况下,请求可能类似于:

curlhttp://api.host.com/transactions -H“接受:应用程序/摘要+json”

响应将包含简化数据格式的主体和设置为
application/summary+json

如果您想更迂腐一些,还可以使用供应商媒体类型,如
application/vnd.yourcompany.summary+json
。在这种情况下,
vnd
意味着媒体类型通常与特定于应用程序的媒体类型相关联

更多信息:


使用Accept/Content-Type头的第三个选项允许媒体类型作为数据的表示,与数据本身分离

github的API就是一个很好的例子:

它使用http头允许客户端选择数据的格式以及版本。因此,在您的情况下,请求可能类似于:

curlhttp://api.host.com/transactions -H“接受:应用程序/摘要+json”

响应将包含简化数据格式的主体和设置为
application/summary+json

如果您想更迂腐一些,还可以使用供应商媒体类型,如
application/vnd.yourcompany.summary+json
。在这种情况下,
vnd
意味着媒体类型通常与特定于应用程序的媒体类型相关联

更多信息: