_format
パラメータの優先順位が最も高くなるように、URLのフォーマット拡張子を検討します。FOSRestBundleがURLのフォーマットを考慮していません
fos_rest:
param_fetcher_listener: true
view:
view_response_listener: 'force'
formats:
json: true
xml: true
routing_loader:
default_format: json
format_listener:
enabled: true
rules:
- { path: '^/api', priorities: ['json', 'xml'], fallback_format: json, prefer_extension: true }
serializer:
serialize_null: true
body_converter:
enabled: true
と私のHTTPリクエストには、以下のいずれかです:私の構成は、次のいずれかの興味深い部分がどこにあるか
{"error":{"code":415,"message":"Unsupported Media Type","exception":[{"message":"The format \"txt\" is not supported for deserialization.","class":"Symfony\\Component\\HttpKernel\\Exception\\UnsupportedMediaTypeHttpException","trace":[{"namespace":"","short_class":"","class":"","type":"","function":"","file":"\/Users\/Matteo\/Documents\/belka\/auth\/vendor\/friendsofsymfony\/rest-bundle\/FOS\/RestBundle\/Request\/AbstractRequestBodyParamConverter.php","line":121,"args":[]},{"namespace":"FOS\\RestBundle\\Request","short_class":"AbstractRequestBodyParamConverter","class":"FOS\\RestBundle\\Request\\AbstractRequestBodyParamConverter","type":"->","function":"execute","file":"\/Users\/Matteo\/Documents\/belka\/auth\/vendor\/friendsofsymfony\/rest-bundle\/FOS\/RestBundle\/Request\/RequestBodyParamConverter.php
:
POST /app_dev_local.php/api/users/admin/globaltoken.json HTTP/1.1
Host: localhost:8000
Cache-Control: no-cache
{
"password": "<a password>"
}
が、これは、このような例外を生成します。
"Unsupported Media Type","exception":[{"message":"The format \"txt\"
このようにHTTPリクエストを変更しようとしました:
POST /app_dev_local.php/api/users/admin/globaltoken.json HTTP/1.1
Host: localhost:8000
Content-Type: application/json
Cache-Control: no-cache
{
"password": "<a password>"
}
それが動作します!私の拡張は全く無視されます。私の設定に何か問題がありますか? JMSSerializer
が誤って設定されていますか?注釈は次のとおりです。
/**
* @View()
*
* @Route("https://stackoverflow.com/users/{username}/globaltoken", requirements={"user"="\w+"})
* @ParamConverter(
* "userBody",
* class="Belka\AuthBundle\Entity\User",
* converter="fos_rest.request_body",
* options={"deserializationContext"={"groups"={"personal"}}}
*)
*/
public function postAction($username, User $userBody)