𝟱 Express APIs తో నేను చేసిన 5 ప్రొడక్షన్ తప్పులు
APIs సంక్లిష్టమైన కోడ్ వల్ల విఫలం కావు.
మీరు చిన్న చిన్న వివరాలను నిర్లక్ష్యం చేయడం వల్ల అవి విఫలమవుతాయి.
నిజమైన ప్రొడక్షన్ లోపల నుండి నేను ఈ ఐదు పాఠాలను నేర్చుకున్నాను.
- డేటాను ముందుగానే వాలిడేట్ చేయండి
నేను నా business logic లోపలే డేటాను వాలిడేట్ చేసేవాడిని. దీనివల్ల మూలానికి దూరంగా బగ్స్ వచ్చేవి.
ఇప్పుడు నేను తప్పుడు రిక్వెస్ట్లను వెంటనే నిలిపివేస్తాను.
ఒక రిక్వెస్ట్లో సరైన ఈమెయిల్ లేకపోతే, వెంటనే 400 error రిటర్న్ చేయండి. తప్పుడు డేటా మీ మెయిన్ లాజిక్కు చేరుకోకుండా చూడండి.
- నిర్దిష్ట error codes ఉపయోగించండి
సాధారణ 500 error ఎవరికీ ఉపయోగపడదు.
ఒకవేళ API key విఫలమైతే, 401 error రిటర్న్ చేయండి. యూజర్కు క్రెడిట్స్ లేకపోతే, 402 error రిటర్న్ చేయండి.
మీరు Slackలో ఒక ఎర్రర్ను వివరించాల్సి వస్తే, మీ API మెసేజ్ విఫలమైనట్లే.
- మీ middleware క్రమాన్ని తనిఖీ చేయండి
అథెంటికేషన్ సమస్యలను పరిష్కరించడానికి (debugging) నేను గంటల కొద్దీ సమయం వృధా చేశాను. సమస్య కేవలం నా middleware క్రమంలోనే ఉంది.
ఈ క్రమాన్ని అనుసరించండి:
- మొదట CORS
- తర్వాత JSON parsing
- మూడవది Authentication
- చివరగా Routes
ఒక్క తప్పు లైన్ వల్ల అంతా విఫలమవుతుంది.
- సరైన డేటాను లాగ్ చేయండి
నేను అనేక రకాల లాగింగ్ పద్ధతులను ప్రయత్నించాను. వాటిలో చాలా వరకు నిరుపయోగంగా ఉన్నాయి.
స్టాండర్డ్ ట్రాకింగ్ కోసం, method, path మరియు status codeలను లాగ్ చేయండి.
ఎర్రర్ల కోసం, request ID, error message మరియు stack traceలను లాగ్ చేయండి.
తెల్లవారుజామున 3 గంటలకు మీరు నిద్రలేచినప్పుడు, మిగిలినవన్నీ అనవసరమైన శబ్దాల (noise) లాంటివే.
- రేట్ లిమిట్లను (rate limits) సెట్ చేయండి
ఒక endpoint పై విపరీతమైన ట్రాఫిక్ రావడం వల్ల భారీగా డబ్బు నష్టపోవడం నేను చూశాను.
పరిమితులు లేని API కేవలం ఆశ మీద ఆధారపడుతుంది. ఆశ అనేది భద్రతా వ్యూహం (security strategy) కాదు.
మీ సర్వర్ను రక్షించడానికి express-rate-limit ఉపయోగించండి.
చాలా API వైఫల్యాలు ప్రాథమిక అంశాలను నిర్లక్ష్యం చేయడం వల్ల వస్తాయి.
ప్రొడక్షన్ మీ ప్లాన్ల గురించి పట్టించుకోదు. అది కేవలం మీ సెటప్ (setup) గురించి మాత్రమే చూస్తుంది.
Source: https://dev.to/manolito99/5-production-mistakes-that-changed-how-i-build-express-apis-133e