Php Silex restful框架中的格式后缀
我开始构建一个支持多种响应格式的RESTful api。我想用Accept头和附加到请求url的文件后缀来识别请求的响应格式 例如。Php Silex restful框架中的格式后缀,php,rest,silex,Php,Rest,Silex,我开始构建一个支持多种响应格式的RESTful api。我想用Accept头和附加到请求url的文件后缀来识别请求的响应格式 例如。 /api/endpointwith includesAccept:application/json*和 /api/endpoint.json应产生相同的json响应 /api/endpoint.xml应导致xml响应 我在Silex中没有找到任何关于响应格式的文档,因此如何开始,是否可以允许文件后缀用于格式识别 谢谢, Patrick示例来自: 要在默认情况下获得
/api/endpoint
with includesAccept:application/json*
和
/api/endpoint.json
应产生相同的json响应
/api/endpoint.xml
应导致xml响应
我在Silex中没有找到任何关于响应格式的文档,因此如何开始,是否可以允许文件后缀用于格式识别
谢谢,
Patrick示例来自:
要在默认情况下获得json响应,您可以使用类似以下内容:
$app->get("/pages/{id}{_separator}{_format}", function (Request $request, $id) use ($app) {
//...
})->assert("id", "\d+")
->value("_separator", ".")
->assert("_separator", "\.|\/")
->value("_format", "json")
->assert("_format", "json|xml");
// /pages/1 => json reponse
// /pages/1.json => json response
// /pages/1.xml => xml response
// /pages/1/json => json response (as a bonus)
// and etc.
另请参阅全局配置此行为。恐怕您必须在控制器中执行此逻辑。。。
$app->get("/pages/{id}{_separator}{_format}", function (Request $request, $id) use ($app) {
//...
})->assert("id", "\d+")
->value("_separator", ".")
->assert("_separator", "\.|\/")
->value("_format", "json")
->assert("_format", "json|xml");
// /pages/1 => json reponse
// /pages/1.json => json response
// /pages/1.xml => xml response
// /pages/1/json => json response (as a bonus)
// and etc.