Przejdź do treści
Biblioteka skilli
Programowanie · Przegląd i audyt

ditz-api

/ditz-api

Projektuje lub przegląda endpointy REST i GraphQL.

Repozytorium
ditzzzai ↗
Licencja
MIT
Ostatnia zmiana repozytorium
29.10.2026

Ocena i bezpieczeństwo

96/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność21 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 29.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Projektuje lub przegląda endpointy REST i GraphQL.

Oryginalny opis (EN)

Use when designing or reviewing REST/GraphQL endpoints.

Jak działa

  1. When to Use
  2. Desain
  3. Perubahan yang ngerusak (breaking)
  4. GraphQL
  5. Verifikasi
Sekcje z nagłówków SKILL.md, w oryginale · 41 linii, 324 słów
Podgląd SKILL.md
---
name: ditz-api
description: Use when designing or reviewing REST/GraphQL endpoints.
version: 1.0.0
license: MIT
metadata:
  hermes:
    tags: [api, rest, graphql, contract]
    related_skills: [ditz-backend, ditz-secure]
---

# ditz-api - Kontrak API yang Nggak Nyakitin Client

## When to Use
- Bikin endpoint baru atau ngubah bentuk response.
- Desain API buat fitur/modul baru.
- Review PR yang nyentuh route.

## Desain

1. **Resource, bukan aksi.** `POST /orders`, `GET /orders/:id`, `PATCH /orders/:id`. Bukan `POST /createOrder`. Aksi non-CRUD yang jelas: `POST /orders/:id/cancel`.
2. **Noun plural, kebab-case.** `/users/:id/payment-methods`.
3. **Method = makna:** GET idempoten & tanpa efek, POST bikin, PUT ganti utuh, PATCH ubah sebagian, DELETE hapus. Jangan GET yang ngubah state.
4. **Status code jujur.** 400 bentuk/validasi, 401 auth, 403 forbidden, 404 nggak ada, 409 konflik, 422 semantik, 429 limit, 500 server. 2xx tanpa body → 204.
5. **Bentuk error seragam:**
   ```json
   { "error": { "code": "email_taken", "message": "Email sudah dipakai", "fields": {"email": "harus unik"} } }
   ```
   `code` stabil buat dimachine, `message` buat manusia.
6. **Naming field:** satu style di seluruh API. Waktu ISO-8601 UTC. Uang integer sen + `currency`.
7. **Pagination seragam:** `?limit=&cursor=` + `{data, nextCursor}`. Jangan campur offset & cursor di API yang sama.
8. **Idempotency key** buat POST yang bisa dobel (payment, invite, webhook).
9. **Versioning:** `/v1` di path kalau publik. Perubahan yang ngerusak kontrak = versi baru, bukan silent change.
10. **Nggak bocorin internal:** PK database autoincrement buat publik → pakai UUID/slug kalau bisa ditebak. Stack trace/SQL nggak pernah ke client.

## Perubahan yang ngerusak (breaking)

- Rename/remove field, ubah tipe, ubah status code, nambah field required, ubah arti field, ubah auth.

Aman: nambah field opsional, nambah endpoint, deprecate sambil tetap jalan (header `Deprecation` + tanggal).

## GraphQL
- Batasi kedalaman & kompleksitas query (DoS), pakai DataLoader buat hindari N+1.
- Authorization per resolver, bukan cuma di root.
- Nggak ada field sensitif tanpa guard (email privat, token).

## Verifikasi
- `curl -i` happy path + satu error path per endpoint.
- Kalau ada OpenAPI: validasi spec (`npx @redocly/cli lint` atau swagger-cli) dan pastikan response nyata cocok sama schema.
- Cek breaking change kalau ngubah spec lama.

Wersje

W bazie nie ma innych skilli o nazwie ditz-api.

Migawka bazy z 13.11.2026 · wersja paczki ee5bcafceac8 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100designing-apis
    Projektuje API REST i GraphQL, w tym endpointy, obsługę błędów, wersjonowanie i dokumentację, oraz ocenia kontrakty API.
  • 96ditz-review
    Przegląda zmianę lub PR przed scaleniem albo wysłaniem.
  • 100create-api-design
    Projektuje API REST lub GraphQL na podstawie specyfikacji funkcji: endpointy, kontrakt API i zasoby.
  • 86ditz-router
    Wybiera, który inżynierski skill z zestawu ditz pasuje do zadania.
  • 100design-api
    Projektuje API REST i GraphQL: nazewnictwo, wersjonowanie, kształt błędów i uwierzytelnianie.
  • 100uw-analyze-api
    Analizuje endpointy REST i GraphQL, kontrakty, uwierzytelnianie oraz interfejsy dla klientów w ramach reverse engineeringu.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.