CRUD

Skrót oznaczający cztery podstawowe operacje na danych: tworzenie, odczyt, aktualizację i usuwanie. Fundament pracy z bazami danych i API.

CRUD to skrót od czterech podstawowych operacji, jakie możesz wykonać na danych: Create (tworzenie), Read (odczyt), Update (aktualizacja) i Delete (usuwanie). To nie żadna technologia ani framework, tylko sposób myślenia o cyklu życia danych. Jeśli aplikacja cokolwiek przechowuje, to prawie na pewno robi z tym te cztery rzeczy.

Każdej literce odpowiada konkretny zestaw narzędzi w zależności od warstwy. W bazie SQL to instrukcje INSERT, SELECT, UPDATE i DELETE. W REST API mapuje się to zwykle na metody HTTP: POST tworzy, GET odczytuje, PUT lub PATCH aktualizuje, a DELETE usuwa. Dzięki temu, gdy widzisz POST /users, od razu wiesz, że ktoś dodaje nowego użytkownika, a DELETE /users/42 kasuje konkretny rekord.

Jak to wygląda w praktyce

Wyobraź sobie, że budujesz prostą listę zadań w Express.js. Każda operacja CRUD to osobny endpoint: POST /tasks zapisuje nowe zadanie, GET /tasks zwraca listę, PATCH /tasks/7 zmienia status na „zrobione”, a DELETE /tasks/7 je kasuje. Pod spodem ORM, na przykład Prisma czy Sequelize, tłumaczy to na zapytania SQL. Frameworki idą krok dalej: w Django wpisujesz model raz, a panel admina generuje pełny interfejs CRUD bez pisania widoków. Laravel ma php artisan make:controller --resource, który tworzy szkielet wszystkich czterech akcji od ręki.

Na co uważać

Najczęstszy błąd początkujących to traktowanie Delete dosłownie. W produkcyjnych systemach rzadko kasuje się dane fizycznie — zamiast tego stosuje się soft delete, czyli flagę typu deleted_at, żeby nic nie znikało bezpowrotnie (i żeby dało się to cofnąć, gdy klient zadzwoni z pretensją).

Drugi mit: że CRUD wystarcza do wszystkiego. Owszem, ale nie pomyli go z autoryzacją — sam fakt, że endpoint DELETE istnieje, nie znaczy, że każdy może z niego korzystać. Sprawdzanie uprawnień to twoja działka, nie magia frameworka. Pamiętaj też o walidacji danych przy Create i Update, bo inaczej do bazy wpadnie wszystko, łącznie ze śmieciami.

Pojęcia powiązane: REST API, metody HTTP, SQL, ORM, baza danych, soft delete, idempotentność (ważna przy PUT i DELETE) oraz endpoint.