Comment valider au mieux JSON côté serveur

lors du traitement des requêtes POST, PUT et PATCH côté serveur, nous avons souvent besoin de traiter quelques JSON pour effectuer les requêtes.

il est évident que nous devons valider ces JSONs (par ex. structure, clés permises/attendues, et types de valeurs) d'une façon ou d'une autre, et je peux voir au moins deux façons:

  1. lors de la réception du JSON, valider l'avance de JSON comme elle est,avant faire n'importe quoi avec pour compléter le demande.

  2. prenez le JSON tel quel, commencez à le traiter (par exemple, accédez à ses différentes valeurs clés) et essayez de le valider en cours de route tout en exécutant la logique opérationnelle, et peut-être utiliser un traitement d'exception pour traiter les données vogue.

la 1ère approche semble plus robuste par rapport à la 2ème, mais probablement plus coûteuse (en temps) parce que chaque demande sera validée (et espérons que la plupart d'entre eux sont valides de sorte que la validation est un peu redondant).

la 2ème approche peut sauver la validation obligatoire sur les requêtes valides, mais mélanger les contrôles dans la logique d'affaires peut être délicat ou même risqué.

Lequel des deux est le meilleur? Ou, est-il encore un meilleur moyen?

17
demandé sur skyork 2015-05-10 23:38:26

6 réponses

ce que vous décrivez avec POST, PUT et PATCH ressemble à l'implémentation d'une API REST. Selon votre plateforme back-end, vous pouvez utiliser des bibliothèques qui vont mapper JSON vers des objets qui est très puissant et effectue cette validation pour vous. En JAVA, vous pouvez utiliser Jersey, printemps