Ursäkta om jag ställer en naiv fråga, men jag noll erfarenhet av webb-programmering. Om du skall tillhandahålla samma funktionalitet via en endpoint istället för 100 enklare, blir inte din enda endpoint väldigt komplex då? Och svårt att avgöra om testerna verkligen täcker in det som 100 endpoints gjorde tidigare? Bara för att alla anrop kommer via samma endpoint så är det väl det ingen garanti att de täcker in all funktionalitet som finns och att all kod faktiskt blir körd?
Den närmaste "enklaste" - kanske inte mest prestandaeffektivaste - lösningen är att nyttja GraphQL eller liknande lösinng där du skickar de data du vill ha som en JSON-sträng och sedan kommer GraphQL (eller liknande lösning) att bearbeta detta och tala med databas(er) och sedan returnera tillbaka behörig data i JSON-struktur enligt den tillhandahållna i JSON-strängen (och efter vedertagen validering och/eller autentisering/auktorisering). Även här blir funktionalieten - förhoppningsvis av uppenbara säkerhetsskäl - begränsad till vad du konfigurerar GraphQL (eller liknande lösning) att få göra i sin direktkommunikation mot databas(er) och/eller var nu all data finns lagrad.
Liknande på lågnivå (efter jag frågat Gemini om det) är att ha eget skräddarsytt nätverksprotokoll efter ha tagit emot och "sytt ihop" alla TCP-nätverkspaket (TCP av pragmatiska skäl) och fått fram en dataström av "opcode-kommandon" som sedan kontrolleras mot "vitlistade opcodes" och sedan görs vad som behövs göras för att hämta data från databas(er) och/eller hur nu all data må vara lagrad hos "lågnivåmottagaren". Möjligen används väldigt strikt Regex för att separera ut olika opcodes och sedan i sin tur olika opcodes' lagrade värden/argument/parametrar från dem?🤔
I samma skickade sammansatta nätverkspaket kanske du vill ha någon (valfri) liknande autentisering och/eller auktorisering i början av "nätverkspaketsströmmen". Alla nätverkspaket skickas då till en specifik DESTINATION:PORT vilket blir själva ändpunkten att tala med i lågnivåexemplet. En eval() som vem som helst skulle kunna "prata med" skulle jag aldrig rekommendera då det är en alldeles för "frispråkig regex" för att uttrycka det milt!
(I mitt hobbyprojekt har jag kommandon såsom 's_eval' och 'v_eval' vilket betyder att Utvecklaren blir medveten om att eval() kommer att användas på vissa specificerade regexade fildata när kommandona körs lokalt så det är då 100 % på egen risk att använda dem! - De kan endast köras lokalt och aldrig mot/från internet.)
Mvh,
WKF.
(V)ulnerabilities
(I)n
(B)asically
(E)verything
Programming