Performance: Resource routes for APIs
MEDIUM IMPACT
Resource routes affect how API endpoints load and respond, impacting server response time and client rendering speed.
import { json } from '@remix-run/node'; export async function loader() { // Only fetch data for GET requests const data = await fetchAllData(); return json(data); } export async function action({ request }) { const formData = await request.formData(); switch (request.method) { case 'POST': await createItem(formData); break; case 'PUT': await updateItem(formData); break; case 'DELETE': await deleteItem(formData.get('id')); break; } return json({ success: true }); }
import { json, redirect } from '@remix-run/node'; export async function loader() { // Handles all CRUD in one loader // Complex logic and multiple DB calls const data = await fetchAllData(); return json(data); } export async function action({ request }) { // Handles create, update, delete in one action const formData = await request.formData(); if (formData.get('delete')) { await deleteItem(formData.get('id')); } else if (formData.get('update')) { await updateItem(formData); } else { await createItem(formData); } return redirect('/api/resource'); }
| Pattern | Server Processing | Network Payload | Response Time | Verdict |
|---|---|---|---|---|
| Combined CRUD in one route | High (complex logic) | Medium (single response) | Slow (long processing) | [X] Bad |
| Separated HTTP methods in resource routes | Low (focused logic) | Medium (single response) | Fast (quick processing) | [OK] Good |