J'ai une API REST Node.js, travaillant directement avec une base de données MySQL via node-mysql
.Comment gérer le filtrage des résultats sur un point de terminaison API REST?
Je suis à la recherche d'un moyen de filtrer les résultats de la base de données sur un critère d'évaluation de la manière la plus performatic.
Actuellement, j'ai un point d'extrémité /api/v2/matches
, où mon code API interroge la base de données et affiche les résultats sous la forme d'une réponse JSON.
Je prévois d'utiliser des filtres sur ce point final. par exemple. /api/v2/matches?filter[team]=TeamId
Quelle est la meilleure façon/moyen le plus performatic pour filtrer les résultats de la base de données dans mon code?
Dois-je:
Interrogation la base de données pour tout et utiliser
Array.prototype.filter()
ou similaire sur mon tableau de résultats pour filtrer les données correctement.Assembler ma chaîne de requête par programme, en fonction de ce qui est passé sur l'objet
req.query.filters
et interroger la base de données.
S'il vous plaît garder à l'esprit que ma requête en cours pour ce paramètre (celui qui renvoie tous les résultats) a quelques INNER JOINS
en cours. J'utilise également LIMIT 50
sur cette requête.