Programowanie · Przegląd i audyt
ditz-api
/ditz-api
Projektuje lub przegląda endpointy REST i GraphQL.
Dla kogo
- Autor
- tongkoljaafar-gif ↗
- 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
- When to Use
- Desain
- Perubahan yang ngerusak (breaking)
- GraphQL
- 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.