Symfony 5.4 の Rest API オペレーションでリクエストパラメータをフィルタリング/サニタイズ/検証する方法
P粉617237727
P粉617237727 2023-12-18 18:58:41
0
1
538

私は Symfony 5.4 をあまり使用したことがなく、最近そのバージョンを使用して最初の API を作成しました

私の特定の API エンドポイントの場合、パラメーターの 1 つは ID の配列です。

次の方法で配列を検証する必要があります:

  • これが配列であることを確認してください;
  • 配列内の ID が実際にデータベース レコードを参照していることを確認してください。
私はこれを簡単な方法で実装し、型キャストと既存の

Repository: を使用してエンティティを永続化する前に配列をチェックしました。 リーリー

ただし、これではコントローラーのアクションが「ボディポジティブ」になりすぎて、もっとエレガントな方法で実装できるように感じます。

Symfony 5.4 ドキュメントには何も見つかりません。

現時点で知りたいのは次のような場合です:

    Symfony にはリクエストパラメータをフィルター/クリーンする方法があります;
  • リクエスト パラメーターにカスタム バリデーター制約を適用するエレガントな組み込みの方法があります (十分に文書化されたエンティティ フィールドの検証と同様)。
  • 完全なエンドポイント コード:
ああああ

P粉617237727
P粉617237727

全員に返信(1)
P粉635509719

認証 サービスでデータ転送オブジェクト (DTO) を使用できます。 事前定義された制約 が多数ありますが、カスタム制約を作成することもできます。

たとえば、単純な制約を注釈として使用する方法:

リーリー

次に、データを DTO に割り当てます:

リーリー

場合によっては、DTO でコンストラクターを定義し、 から をリクエストして、それをすぐに DTO に渡す方がよい場合があります。

リーリー

次に、それを確認します:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート