私はjsonapiを構築しています。フォーマットは、routing.yml構成ファイルを介して適切に管理されます。
user_info:
url: /users/:user_id
class: sfRequestRoute
param: { module: user, action: details, sf_format: json }
requirements:
user_id: \d+
sf_method: [GET]
ここで、アプリに送信されたすべてのリクエストがjson形式で結果を返すことを確認したいと思います(例:「/ dummy」はjsonでエラーを返す必要があります)。同じファイルの最後にある次のデフォルトルートで順調に進んでいます。
default:
url: /*
param: { sf_format: json }
存在しないページまたはモジュールにルーティングすると、jsonが正しくレンダリングされます...エラー!生成されたhtmlページは404でしたが、このルーティングでは500(サーバーエラー)が発生します。レンダリングをjson出力に変更するだけで、デフォルトのhtmlページと同様の動作を維持するにはどうすればよいですか?
編集-1Edの指示に従う
そこで、factories.ymlを編集し、APIプロジェクトにデフォルトのモジュールを作成し、デフォルトのアクションに以下のexecuteError404関数を追加しました...次に、対応するError404Success.phpページを設定します...
何らかの理由で、:moduleおよび:actionキーワードを回避するために変更したルートがまだ必要です。
default_index:
url: /:a
default:
url: /:a/:b/*
そして、ここに私がいます!私の404ページはAPI全体でjson形式で提供されています:)どうもありがとうございました!