24 items
Fetching a User from a REST API
Code QuizClient–Server & REST Basics
QuizClient–Server & REST API Basics
Slides / VideoClient–Server & REST Basics
FlashcardAPI Error Response Status Bug
Code QuizREST API Versioning Basics
QuizREST Status Codes in Express
Code QuizCorrect Status Code for Async Resource Creation
QuizPaginated Endpoint with Version and Error Contract
Code QuizCursor Pagination Design Choice
QuizREST Create Endpoint Status Code
Code QuizHTTP Methods & Status Codes Basics
QuizAPI Versioning, Pagination & Idempotency
FlashcardVersioning, Pagination & Idempotency
Slides / VideoAPI Conventions: Versioning, Pagination, Errors
Slides / VideoREST API Conventions
FlashcardCreating a Resource via Fetch
Code QuizIdempotency in REST Request Flow
QuizAPI Design & Request Flow
Slides / VideoClient-Server Request Flow
FlashcardURL Shortener REST API Bug
Code QuizREST Endpoint for URL Shortener
QuizDesign a REST URL Shortener API
Slides / VideoDesigning a REST API for a URL Shortener
FlashcardURL Shortener REST API Bug
Spot the REST design mistake in a simple URL shortener API built with Express.
const express = require('express');
const app = express();
app.use(express.json());
const store = {};
// Create a short URL
app.get('/urls', (req, res) => {
const { longUrl } = req.body;
const code = Math.random().toString(36).slice(2, 8);
store[code] = longUrl;
res.status(201).json({ code, shortUrl: `/${code}` });
});
// Redirect to the original URL
app.get('/:code', (req, res) => {
const longUrl = store[req.params.code];
if (!longUrl) return res.status(404).json({ error: 'Not found' });
res.redirect(longUrl);
});
app.listen(3000);What is the bug in this REST API design?