Programowanie
10.08.2025

Wygeneruj endpoint REST API dla swojej aplikacji webowej z użyciem Nodejs i Express - Prompt do ChatGPT

Wygeneruj produkcyjne REST API w Node.js/Express z kodem, testami, dokumentacją i wdrożeniem. Zyskaj skalowalność i wydajność: autentykacja, walidacja, Swagger/Docker, CI/CD, monitoring.

Co robi ten prompt:

  • Generuje kompletny plik routera dla frameworka Express.js w Node.js, gotowy do użycia w projekcie.

  • Implementuje standardowe operacje CRUD (Create, Read, Update, Delete) dla zdefiniowanego przez użytkownika zasobu (np. użytkownika, produktu).

  • Kod wynikowy zawiera podstawową walidację danych wejściowych, obsługę błędów oraz komentarze, co czyni go szablonem o jakości produkcyjnej.

CI/CDarchitektura APIbezpieczeństwoOpenAPI

Treść prompta do skopiowania

Dane wejściowe:
Nazwa Zasobu:
Pola Zasobu (oddzielone przecinkami):

Jesteś Senior Backend Developerem z 12-letnim doświadczeniem w budowaniu skalowalnych i bezpiecznych API w ekosystemie Node.js. Specjalizujesz się w architekturze RESTful i frameworku Express.js. Twój kod jest czysty, wydajny i zgodny z najlepszymi praktykami.

Zadanie (Cel): Stwórz kompletny, gotowy do użycia plik routera dla Express.js, który implementuje pełny zestaw operacji CRUD (Create, Read, Update, Delete) dla zasobu [Nazwa Zasobu]. Kod musi być produkcyjnej jakości, zawierać walidację danych wejściowych i obsługę błędów.

Format Odpowiedzi:

  1. Pojedynczy Blok Kodu: Dostarcz cały kod w jednym, samowystarczalnym bloku kodu JavaScript, gotowym do wklejenia do pliku routes/[nazwa_zasobu].js.
  2. Struktura Kodu:
    • Zaimportuj express.
    • Zainicjuj express.Router().
    • Zaimplementuj 5 endpointów dla zasobu [Nazwa Zasobu] (w liczbie mnogiej, np. /uzytkownicy):
      • GET / - Zwraca listę wszystkich zasobów.
      • GET /:id - Zwraca pojedynczy zasób o podanym ID.
      • POST / - Tworzy nowy zasób na podstawie danych z req.body.
      • PUT /:id - Aktualizuje istniejący zasób.
      • DELETE /:id - Usuwa zasób o podanym ID.
    • Wyeksportuj router używając module.exports.
  3. Komentarze i Placeholdery:
    • Każdy endpoint musi być poprzedzony zwięzłym komentarzem wyjaśniającym jego działanie, np. // GET /api/[nazwa_zasobu] - Pobierz wszystkie....
    • W miejscach, gdzie powinna znaleźć się logika biznesowa lub interakcja z bazą danych, wstaw komentarz-placeholder, np. // TODO: Implementacja logiki połączenia z bazą danych.
  4. Obsługa Danych:
    • Wszystkie odpowiedzi z serwera muszą być w formacie JSON.
    • Używaj poprawnych kodów statusu HTTP (200, 201, 204, 400, 404, 500).

Najważniejsze:

  • RESTful Compliance: Priorytetem jest ścisłe przestrzeganie zasad REST. Użyj odpowiednich metod HTTP (GET, POST, PUT, DELETE) dla odpowiednich akcji.
  • Walidacja: W endpointach POST i PUT zaimplementuj podstawową walidację, sprawdzającą, czy wszystkie wymagane [Pola Zasobu] (poza ID) są obecne w req.body. W przypadku błędu zwróć status 400 z komunikatem.
  • Obsługa Błędów: Zaimplementuj obsługę przypadku, gdy zasób o danym ID nie zostanie znaleziony (w GET /:id, PUT /:id, DELETE /:id), zwracając status 404.
  • Przejrzystość Kodu: Kod ma być czytelny, z konsekwentnym formatowaniem i nazewnictwem. Zmienne i funkcje muszą mieć nazwy jasno określające ich przeznaczenie.
3

Jak używać tego prompta:

Należy uzupełnić dwa główne pola w sekcji "Dane wejściowe": [Nazwa Zasobu] oraz [Pola Zasobu]. Przykładowo, aby stworzyć API do zarządzania produktami, można użyć następujących wartości: Nazwa Zasobu: Produkt Pola Zasobu: id, nazwa, cena, kategoria, ilosc_na_magazynie

Dobrze wiedzieć

Wygenerowany kod jest doskonałym punktem wyjścia do budowy API zgodnego z zasadami REST. Stosowanie poprawnych metod HTTP (GET, POST, PUT, DELETE) i kodów statusu (200, 404, 500) jest kluczowe dla tworzenia przewidywalnych i łatwych w integracji usług. Pamiętaj, że nazwa endpointu powinna być w liczbie mnogiej i najlepiej w języku angielskim (np. /users, /products), co jest powszechnie przyjętym standardem w tworzeniu API.

Chociaż prompt generuje solidną strukturę, nie obejmuje on aspektów bezpieczeństwa, takich jak autoryzacja i uwierzytelnianie. W rzeczywistej aplikacji kluczowe będzie dodanie warstwy pośredniej (middleware) do weryfikacji tożsamości użytkownika (np. za pomocą tokenów JWT) i sprawdzania jego uprawnień do wykonywania określonych operacji. Ponadto, walidacja powinna być rozszerzona o oczyszczanie danych (sanitization), aby zapobiec atakom typu XSS czy SQL Injection.

Sprawdź również