first commit
This commit is contained in:
2025
frontend/belgeler/admin_blog_post.md
Normal file
2025
frontend/belgeler/admin_blog_post.md
Normal file
File diff suppressed because it is too large
Load Diff
377
frontend/belgeler/admin_hero_crud.md
Normal file
377
frontend/belgeler/admin_hero_crud.md
Normal file
@@ -0,0 +1,377 @@
|
||||
Proje `frontend` klasörü altında yapılandırılmıştır. Gerekli tüm paketler (`package.json`) önceden yüklenmiştir:
|
||||
- **Framework:** Next.js 16 (App Router)
|
||||
- **UI:** React 19, Tailwind CSS v4, shadcn/ui
|
||||
- **İkonlar:** lucide-react
|
||||
- **Validasyon:** Zod
|
||||
- **Auth:** NextAuth.js
|
||||
- **Bildirimler:** SweetAlert2
|
||||
- **Güvenlik:** nextjs-turnstile (Cloudflare)
|
||||
- **Senin ile sadece Frontend Üstünde Çalışıyorum**
|
||||
- **Backend ile ilgili bir şey Yapman Gerekirse Bana Söylemen Yeterli**
|
||||
|
||||
##############
|
||||
Yeni Hero Kaydi
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/admin/heroes' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MDU3NjYsImlhdCI6MTc3MTM5NDk2NiwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.pKMS0trKymCVgLZL-fTSUWB8QDAzfRVikHD_-I2iC-A' \
|
||||
-H 'Content-Type: multipart/form-data' \
|
||||
-F 'color=11111' \
|
||||
-F 'title=Title' \
|
||||
-F 'text1=Text1' \
|
||||
-F 'text2=Text2' \
|
||||
-F 'text4=Text4' \
|
||||
-F 'text5=Text5' \
|
||||
-F 'is_active=true' \
|
||||
-F 'image=@845575.png;type=image/png'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/heroes
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
201
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"ID": 1,
|
||||
"CreatedAt": "2026-02-18T06:17:46.077799Z",
|
||||
"UpdatedAt": "2026-02-18T06:17:46.077799Z",
|
||||
"DeletedAt": null,
|
||||
"color": "11111",
|
||||
"title": "Title",
|
||||
"text1": "Text1",
|
||||
"text2": "Text2",
|
||||
"text4": "Text4",
|
||||
"text5": "Text5",
|
||||
"image": "/uploads/heroes/hero-1771395466075911000.png",
|
||||
"is_active": true
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 286
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 06:17:46 GMT
|
||||
vary: Origin
|
||||
|
||||
##################
|
||||
restore hero
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/admin/heroes/2/restore' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MDU3NjYsImlhdCI6MTc3MTM5NDk2NiwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.pKMS0trKymCVgLZL-fTSUWB8QDAzfRVikHD_-I2iC-A' \
|
||||
-d ''
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/heroes/2/restore
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"ID": 2,
|
||||
"CreatedAt": "2026-02-18T09:18:32.257+03:00",
|
||||
"UpdatedAt": "2026-02-18T06:19:40.645922Z",
|
||||
"DeletedAt": null,
|
||||
"color": "22222",
|
||||
"title": "Title",
|
||||
"text1": "Text1",
|
||||
"text2": "Text2",
|
||||
"text4": "Text4",
|
||||
"text5": "Text5",
|
||||
"image": "/uploads/heroes/hero-1771395512255077000.png",
|
||||
"is_active": true
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 288
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 06:19:40 GMT
|
||||
vary: Origin
|
||||
|
||||
##################
|
||||
hero silmek
|
||||
curl -X 'DELETE' \
|
||||
'http://localhost:8080/api/v1/admin/heroes/3' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MDU3NjYsImlhdCI6MTc3MTM5NDk2NiwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.pKMS0trKymCVgLZL-fTSUWB8QDAzfRVikHD_-I2iC-A'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/heroes/3
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Undocumented
|
||||
|
||||
Response body
|
||||
|
||||
{
|
||||
"id": 3,
|
||||
"message": "hero deleted successfully"
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 46
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 06:20:49 GMT
|
||||
vary: Origin
|
||||
|
||||
##################
|
||||
sadece soft delete olmuslar
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/heroes?soft=only' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MDU3NjYsImlhdCI6MTc3MTM5NDk2NiwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.pKMS0trKymCVgLZL-fTSUWB8QDAzfRVikHD_-I2iC-A'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/heroes?soft=only
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"ID": 3,
|
||||
"CreatedAt": "2026-02-18T09:20:43.16+03:00",
|
||||
"UpdatedAt": "2026-02-18T09:20:43.16+03:00",
|
||||
"DeletedAt": "2026-02-18T09:20:49.969+03:00",
|
||||
"color": "22222",
|
||||
"title": "Title",
|
||||
"text1": "Text1",
|
||||
"text2": "Text2",
|
||||
"text4": "Text4",
|
||||
"text5": "Text5",
|
||||
"image": "/uploads/heroes/hero-1771395643158537000.png",
|
||||
"is_active": true
|
||||
},
|
||||
{
|
||||
"ID": 2,
|
||||
"CreatedAt": "2026-02-18T09:18:32.257+03:00",
|
||||
"UpdatedAt": "2026-02-18T09:18:32.257+03:00",
|
||||
"DeletedAt": "2026-02-18T09:19:05.81+03:00",
|
||||
"color": "22222",
|
||||
"title": "Title",
|
||||
"text1": "Text1",
|
||||
"text2": "Text2",
|
||||
"text4": "Text4",
|
||||
"text5": "Text5",
|
||||
"image": "/uploads/heroes/hero-1771395512255077000.png",
|
||||
"is_active": true
|
||||
}
|
||||
],
|
||||
"page": 1,
|
||||
"per_page": 20,
|
||||
"total": 2
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 659
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 06:22:05 GMT
|
||||
|
||||
##################
|
||||
soft delete olmuslar ve silinmeyenler yani hepsi
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/heroes?soft=with' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MDU3NjYsImlhdCI6MTc3MTM5NDk2NiwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.pKMS0trKymCVgLZL-fTSUWB8QDAzfRVikHD_-I2iC-A'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/heroes?soft=with
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"ID": 3,
|
||||
"CreatedAt": "2026-02-18T09:20:43.16+03:00",
|
||||
"UpdatedAt": "2026-02-18T09:20:43.16+03:00",
|
||||
"DeletedAt": "2026-02-18T09:20:49.969+03:00",
|
||||
"color": "22222",
|
||||
"title": "Title",
|
||||
"text1": "Text1",
|
||||
"text2": "Text2",
|
||||
"text4": "Text4",
|
||||
"text5": "Text5",
|
||||
"image": "/uploads/heroes/hero-1771395643158537000.png",
|
||||
"is_active": true
|
||||
},
|
||||
{
|
||||
"ID": 2,
|
||||
"CreatedAt": "2026-02-18T09:18:32.257+03:00",
|
||||
"UpdatedAt": "2026-02-18T09:18:32.257+03:00",
|
||||
"DeletedAt": "2026-02-18T09:19:05.81+03:00",
|
||||
"color": "22222",
|
||||
"title": "Title",
|
||||
"text1": "Text1",
|
||||
"text2": "Text2",
|
||||
"text4": "Text4",
|
||||
"text5": "Text5",
|
||||
"image": "/uploads/heroes/hero-1771395512255077000.png",
|
||||
"is_active": true
|
||||
},
|
||||
{
|
||||
"ID": 1,
|
||||
"CreatedAt": "2026-02-18T09:17:46.077+03:00",
|
||||
"UpdatedAt": "2026-02-18T09:17:46.077+03:00",
|
||||
"DeletedAt": null,
|
||||
"color": "11111",
|
||||
"title": "Title",
|
||||
"text1": "Text1",
|
||||
"text2": "Text2",
|
||||
"text4": "Text4",
|
||||
"text5": "Text5",
|
||||
"image": "/uploads/heroes/hero-1771395466075911000.png",
|
||||
"is_active": true
|
||||
}
|
||||
],
|
||||
"page": 1,
|
||||
"per_page": 20,
|
||||
"total": 3
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 941
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 06:22:49 GMT
|
||||
|
||||
##################
|
||||
tek getiröe
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/heroes/2' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MDU3NjYsImlhdCI6MTc3MTM5NDk2NiwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.pKMS0trKymCVgLZL-fTSUWB8QDAzfRVikHD_-I2iC-A'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/heroes/2
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"ID": 2,
|
||||
"CreatedAt": "2026-02-18T09:18:32.257+03:00",
|
||||
"UpdatedAt": "2026-02-18T09:18:32.257+03:00",
|
||||
"DeletedAt": "2026-02-18T09:19:05.81+03:00",
|
||||
"color": "22222",
|
||||
"title": "Title",
|
||||
"text1": "Text1",
|
||||
"text2": "Text2",
|
||||
"text4": "Text4",
|
||||
"text5": "Text5",
|
||||
"image": "/uploads/heroes/hero-1771395512255077000.png",
|
||||
"is_active": true
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 316
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 06:24:07 GMT
|
||||
|
||||
##################
|
||||
hero guncelleme
|
||||
curl -X 'PUT' \
|
||||
'http://localhost:8080/api/v1/admin/heroes/1' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MDU3NjYsImlhdCI6MTc3MTM5NDk2NiwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.pKMS0trKymCVgLZL-fTSUWB8QDAzfRVikHD_-I2iC-A' \
|
||||
-H 'Content-Type: multipart/form-data' \
|
||||
-F 'color=ee' \
|
||||
-F 'title=ee' \
|
||||
-F 'text1=ee' \
|
||||
-F 'text2=ee' \
|
||||
-F 'text4=ee' \
|
||||
-F 'text5=ee' \
|
||||
-F 'is_active=true' \
|
||||
-F 'image=@accounts.jpg;type=image/jpeg'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/heroes/1
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"ID": 1,
|
||||
"CreatedAt": "2026-02-18T09:17:46.077+03:00",
|
||||
"UpdatedAt": "2026-02-18T06:25:06.633353Z",
|
||||
"DeletedAt": null,
|
||||
"color": "ee",
|
||||
"title": "ee",
|
||||
"text1": "ee",
|
||||
"text2": "ee",
|
||||
"text4": "ee",
|
||||
"text5": "ee",
|
||||
"image": "/uploads/heroes/hero-1771395906631296000.jpg",
|
||||
"is_active": true
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 270
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 06:25:06 GMT
|
||||
vary: Origin
|
||||
|
||||
##################
|
||||
Eklenen alanlari
|
||||
"width": 0,
|
||||
"height": 0,
|
||||
"quality": 0,
|
||||
"format": ""
|
||||
|
||||
|
||||
369
frontend/belgeler/admin_kategori_crud.md
Normal file
369
frontend/belgeler/admin_kategori_crud.md
Normal file
@@ -0,0 +1,369 @@
|
||||
Proje `frontend` klasörü altında yapılandırılmıştır. Gerekli tüm paketler (`package.json`) önceden yüklenmiştir:
|
||||
- **Framework:** Next.js 16 (App Router)
|
||||
- **UI:** React 19, Tailwind CSS v4, shadcn/ui
|
||||
- **İkonlar:** lucide-react
|
||||
- **Validasyon:** Zod
|
||||
- **Auth:** NextAuth.js
|
||||
- **Bildirimler:** SweetAlert2
|
||||
- **Güvenlik:** nextjs-turnstile (Cloudflare)
|
||||
- **Senin ile sadece Frontend Üstünde Çalışıyorum**
|
||||
- **Backend ile ilgili bir şey Yapman Gerekirse Bana Söylemen Yeterli**
|
||||
|
||||
#######################
|
||||
Silnmis ve silinmemiş kategorileri hepsini getirir
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/categories?soft=with' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTcyMzksImlhdCI6MTc3MTM4NjQzOSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.ueKzmNpcFfyZlwruom6odx3ZegIJG_WCr5xJuepiG64'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/categories?soft=with
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"id": 126,
|
||||
"title": "Edebiyat",
|
||||
"slug": "edebiyat-1771357850441632000",
|
||||
"deleted_at": "2026-02-18T07:13:44.315+03:00"
|
||||
},
|
||||
{
|
||||
"id": 125,
|
||||
"title": "Müzik",
|
||||
"slug": "muzik-1771357850322048000"
|
||||
},
|
||||
{
|
||||
"id": 124,
|
||||
"title": "Sinema",
|
||||
"slug": "sinema-1771357850310914000"
|
||||
},
|
||||
{
|
||||
"id": 123,
|
||||
"title": "Sanat",
|
||||
"slug": "sanat-1771357850300423000"
|
||||
},
|
||||
{
|
||||
"id": 122,
|
||||
"title": "İçecekler",
|
||||
"slug": "icecekler-1771357850183010000"
|
||||
},
|
||||
{
|
||||
"id": 121,
|
||||
"title": "Ana Yemekler",
|
||||
"slug": "ana-yemekler-1771357850172046000"
|
||||
},
|
||||
{
|
||||
"id": 120,
|
||||
"title": "Tatlılar",
|
||||
"slug": "tatlilar-1771357850161422000"
|
||||
},
|
||||
{
|
||||
"id": 119,
|
||||
"title": "Yemek",
|
||||
"slug": "yemek-1771357850149748000"
|
||||
},
|
||||
{
|
||||
"id": 118,
|
||||
"title": "Dekorasyon",
|
||||
"slug": "dekorasyon-1771357850137823000",
|
||||
"deleted_at": "2026-02-18T07:11:49.576+03:00"
|
||||
},
|
||||
{
|
||||
"id": 117,
|
||||
"title": "Gezi",
|
||||
"slug": "gezi-1771357850126021000"
|
||||
},
|
||||
{
|
||||
"id": 116,
|
||||
"title": "Spor",
|
||||
"slug": "spor-1771357850110558000"
|
||||
},
|
||||
{
|
||||
"id": 115,
|
||||
"title": "Sağlık",
|
||||
"slug": "saglik-1771357850098589000"
|
||||
},
|
||||
{
|
||||
"id": 114,
|
||||
"title": "Yaşam",
|
||||
"slug": "yasam-1771357850085843000"
|
||||
},
|
||||
{
|
||||
"id": 113,
|
||||
"title": "Mobil",
|
||||
"slug": "mobil-1771357850074407000"
|
||||
},
|
||||
{
|
||||
"id": 112,
|
||||
"title": "Yapay Zeka",
|
||||
"slug": "yapay-zeka-1771357850062505000"
|
||||
},
|
||||
{
|
||||
"id": 111,
|
||||
"title": "Donanım",
|
||||
"slug": "donanim-1771357850051551000"
|
||||
},
|
||||
{
|
||||
"id": 110,
|
||||
"title": "Yazılım",
|
||||
"slug": "yazilim-1771357850031651000"
|
||||
},
|
||||
{
|
||||
"id": 109,
|
||||
"title": "Teknoloji",
|
||||
"slug": "teknoloji-1771357849936045000"
|
||||
}
|
||||
],
|
||||
"page": 1,
|
||||
"per_page": 20,
|
||||
"total": 18
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 1331
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 04:14:02 GMT
|
||||
|
||||
#######################
|
||||
sadece silinmisleri getirir
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/categories?soft=only' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTcyMzksImlhdCI6MTc3MTM4NjQzOSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.ueKzmNpcFfyZlwruom6odx3ZegIJG_WCr5xJuepiG64'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/categories?soft=only
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"id": 126,
|
||||
"title": "Edebiyat",
|
||||
"slug": "edebiyat-1771357850441632000",
|
||||
"deleted_at": "2026-02-18T07:13:44.315+03:00"
|
||||
},
|
||||
{
|
||||
"id": 118,
|
||||
"title": "Dekorasyon",
|
||||
"slug": "dekorasyon-1771357850137823000",
|
||||
"deleted_at": "2026-02-18T07:11:49.576+03:00"
|
||||
}
|
||||
],
|
||||
"page": 1,
|
||||
"per_page": 20,
|
||||
"total": 2
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 274
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 04:15:47 GMT
|
||||
|
||||
Responses
|
||||
|
||||
#######################
|
||||
yeni kategori ekler
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/admin/categories' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTcyMzksImlhdCI6MTc3MTM4NjQzOSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.ueKzmNpcFfyZlwruom6odx3ZegIJG_WCr5xJuepiG64' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"description": "yeni kategori",
|
||||
"parent_id": null,
|
||||
"slug": "eni-kategori",
|
||||
"title": "yeni kategori"
|
||||
}'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/categories
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
201
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"id": 128,
|
||||
"title": "yeni kategori",
|
||||
"slug": "eni-kategori"
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 65
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 04:17:18 GMT
|
||||
vary: Origin
|
||||
|
||||
#######################
|
||||
yeni alt kategori ekler
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/admin/categories' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTcyMzksImlhdCI6MTc3MTM4NjQzOSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.ueKzmNpcFfyZlwruom6odx3ZegIJG_WCr5xJuepiG64' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"description": "yeni alt kategori",
|
||||
"parent_id": 128,
|
||||
"slug": "yeni-alt-kategori",
|
||||
"title": "yeni alt kategori"
|
||||
}'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/categories
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
201
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"id": 129,
|
||||
"title": "yeni alt kategori",
|
||||
"slug": "yeni-alt-kategori"
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 74
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 04:18:15 GMT
|
||||
vary: Origin
|
||||
|
||||
Responses
|
||||
|
||||
#######################
|
||||
kategori gunceller
|
||||
curl -X 'PUT' \
|
||||
'http://localhost:8080/api/v1/admin/categories/128' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTcyMzksImlhdCI6MTc3MTM4NjQzOSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.ueKzmNpcFfyZlwruom6odx3ZegIJG_WCr5xJuepiG64' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"description": "update",
|
||||
"parent_id": null,
|
||||
"slug": "update",
|
||||
"title": "update"
|
||||
}'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/categories/128
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"id": 128,
|
||||
"title": "update",
|
||||
"slug": "update"
|
||||
}
|
||||
}
|
||||
|
||||
Respons
|
||||
|
||||
#######################
|
||||
siler
|
||||
curl -X 'DELETE' \
|
||||
'http://localhost:8080/api/v1/admin/categories/122' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTcyMzksImlhdCI6MTc3MTM4NjQzOSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.ueKzmNpcFfyZlwruom6odx3ZegIJG_WCr5xJuepiG64'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/categories/122
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Undocumented
|
||||
|
||||
Response body
|
||||
|
||||
{
|
||||
"id": 122,
|
||||
"message": "category deleted successfully"
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 52
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 04:20:35 GMT
|
||||
vary: Origin
|
||||
|
||||
#######################
|
||||
soft delte restore
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/admin/categories/122/restore' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTcyMzksImlhdCI6MTc3MTM4NjQzOSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.ueKzmNpcFfyZlwruom6odx3ZegIJG_WCr5xJuepiG64' \
|
||||
-d ''
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/categories/122/restore
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"id": 122,
|
||||
"title": "İçecekler",
|
||||
"slug": "icecekler-1771357850183010000"
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 80
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 04:21:57 GMT
|
||||
vary: Origin
|
||||
624
frontend/belgeler/admin_settings_crud.md
Normal file
624
frontend/belgeler/admin_settings_crud.md
Normal file
@@ -0,0 +1,624 @@
|
||||
Settigns ekleme
|
||||
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/admin/settings' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MTYyMjcsImlhdCI6MTc3MTQwNTQyNywiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.X6mTnoiYJ1CUlarQlmwka0VpuDxYTIAV0QfS72AuBXs' \
|
||||
-H 'Content-Type: multipart/form-data' \
|
||||
-F 'title=Title' \
|
||||
-F 'meta_title=Meta title' \
|
||||
-F 'meta_description=Meta description' \
|
||||
-F 'phone=Phone' \
|
||||
-F 'url=URL' \
|
||||
-F 'email=Email' \
|
||||
-F 'facebook=Facebook' \
|
||||
-F 'x=x' \
|
||||
-F 'instagram=Instagram' \
|
||||
-F 'whatsapp=Whatsapp' \
|
||||
-F 'pinterest=Pinterest' \
|
||||
-F 'linkedin=Linkedin' \
|
||||
-F 'slogan=Slogan' \
|
||||
-F 'address=Address' \
|
||||
-F 'copyright=Copyright' \
|
||||
-F 'map_embed=Map embed' \
|
||||
-F 'w_logo=@354473ed-59e9-41cf-a655-ec5f7a77ccaa.png;type=image/png' \
|
||||
-F 'b_logo=@354473ed-59e9-41cf-a655-ec5f7a77ccaa.png;type=image/png' \
|
||||
-F 'is_active=true' \
|
||||
-F 'w_width=100' \
|
||||
-F 'w_height=100' \
|
||||
-F 'w_quality=100' \
|
||||
-F 'w_format=avif' \
|
||||
-F 'b_width=100' \
|
||||
-F 'b_height=100' \
|
||||
-F 'b_quality=100' \
|
||||
-F 'b_format=avif'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/settings
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
201
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"ID": 1,
|
||||
"CreatedAt": "2026-02-18T09:06:07.242338Z",
|
||||
"UpdatedAt": "2026-02-18T09:06:07.242338Z",
|
||||
"DeletedAt": null,
|
||||
"title": "Title",
|
||||
"meta_title": "Meta title",
|
||||
"meta_description": "Meta description",
|
||||
"phone": "Phone",
|
||||
"url": "URL",
|
||||
"email": "Email",
|
||||
"facebook": "Facebook",
|
||||
"x": "x",
|
||||
"instagram": "Instagram",
|
||||
"whatsapp": "Whatsapp",
|
||||
"pinterest": "Pinterest",
|
||||
"linkedin": "Linkedin",
|
||||
"slogan": "Slogan",
|
||||
"address": "Address",
|
||||
"copyright": "Copyright",
|
||||
"map_embed": "Map embed",
|
||||
"w_logo": "/uploads/logos/wlogo-1771405567230290000.png",
|
||||
"b_logo": "/uploads/logos/blogo-1771405567233377000.png",
|
||||
"is_active": true,
|
||||
"w_width": 100,
|
||||
"w_height": 100,
|
||||
"w_quality": 100,
|
||||
"w_format": "avif",
|
||||
"b_width": 100,
|
||||
"b_height": 100,
|
||||
"b_quality": 100,
|
||||
"b_format": "avif"
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 705
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 09:06:07 GMT
|
||||
vary: Origin
|
||||
|
||||
##################
|
||||
|
||||
Setiiggs tek gor
|
||||
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/settings/2' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MTYyMjcsImlhdCI6MTc3MTQwNTQyNywiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.X6mTnoiYJ1CUlarQlmwka0VpuDxYTIAV0QfS72AuBXs'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/settings/2
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"ID": 2,
|
||||
"CreatedAt": "2026-02-18T12:07:50+03:00",
|
||||
"UpdatedAt": "2026-02-18T12:07:50+03:00",
|
||||
"DeletedAt": null,
|
||||
"title": "Title",
|
||||
"meta_title": "Meta title",
|
||||
"meta_description": "Meta description",
|
||||
"phone": "Phone",
|
||||
"url": "URL",
|
||||
"email": "Email",
|
||||
"facebook": "Facebook",
|
||||
"x": "x",
|
||||
"instagram": "Instagram",
|
||||
"whatsapp": "Whatsapp",
|
||||
"pinterest": "Pinterest",
|
||||
"linkedin": "Linkedin",
|
||||
"slogan": "Slogan",
|
||||
"address": "Address",
|
||||
"copyright": "Copyright",
|
||||
"map_embed": "Map embed",
|
||||
"w_logo": "/uploads/logos/wlogo-1771405669986265000.png",
|
||||
"b_logo": "/uploads/logos/blogo-1771405669989575000.png",
|
||||
"is_active": true,
|
||||
"w_width": 100,
|
||||
"w_height": 100,
|
||||
"w_quality": 100,
|
||||
"w_format": "avif",
|
||||
"b_width": 100,
|
||||
"b_height": 100,
|
||||
"b_quality": 100,
|
||||
"b_format": "avif"
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 701
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 09:08:04 GMT
|
||||
|
||||
###############
|
||||
setting guncelleme
|
||||
|
||||
curl -X 'PUT' \
|
||||
'http://localhost:8080/api/v1/admin/settings/2' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MTYyMjcsImlhdCI6MTc3MTQwNTQyNywiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.X6mTnoiYJ1CUlarQlmwka0VpuDxYTIAV0QfS72AuBXs' \
|
||||
-H 'Content-Type: multipart/form-data' \
|
||||
-F 'title=ewr' \
|
||||
-F 'meta_title=wer' \
|
||||
-F 'meta_description=werwer' \
|
||||
-F 'phone=wer' \
|
||||
-F 'url=wer' \
|
||||
-F 'email=wer' \
|
||||
-F 'facebook=wer' \
|
||||
-F 'x=wer' \
|
||||
-F 'instagram=wer' \
|
||||
-F 'whatsapp=ewr' \
|
||||
-F 'pinterest=wer' \
|
||||
-F 'linkedin=wer' \
|
||||
-F 'slogan=wer' \
|
||||
-F 'address=wre' \
|
||||
-F 'copyright=wer' \
|
||||
-F 'map_embed=wer' \
|
||||
-F 'w_logo=@1657955547black-google-icon.png;type=image/png' \
|
||||
-F 'b_logo=@845660.png;type=image/png' \
|
||||
-F 'is_active=false' \
|
||||
-F 'w_width=111' \
|
||||
-F 'w_height=111' \
|
||||
-F 'w_quality=100' \
|
||||
-F 'w_format=avif' \
|
||||
-F 'b_width=111' \
|
||||
-F 'b_height=111' \
|
||||
-F 'b_quality=100' \
|
||||
-F 'b_format=avif'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/settings/2
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"ID": 2,
|
||||
"CreatedAt": "2026-02-18T12:07:50+03:00",
|
||||
"UpdatedAt": "2026-02-18T09:10:27.629761Z",
|
||||
"DeletedAt": null,
|
||||
"title": "ewr",
|
||||
"meta_title": "wer",
|
||||
"meta_description": "werwer",
|
||||
"phone": "wer",
|
||||
"url": "wer",
|
||||
"email": "wer",
|
||||
"facebook": "wer",
|
||||
"x": "wer",
|
||||
"instagram": "wer",
|
||||
"whatsapp": "ewr",
|
||||
"pinterest": "wer",
|
||||
"linkedin": "wer",
|
||||
"slogan": "wer",
|
||||
"address": "wre",
|
||||
"copyright": "wer",
|
||||
"map_embed": "wer",
|
||||
"w_logo": "/uploads/logos/wlogo-1771405827623476000.png",
|
||||
"b_logo": "/uploads/logos/blogo-1771405827627412000.png",
|
||||
"is_active": false,
|
||||
"w_width": 111,
|
||||
"w_height": 111,
|
||||
"w_quality": 100,
|
||||
"w_format": "avif",
|
||||
"b_width": 111,
|
||||
"b_height": 111,
|
||||
"b_quality": 100,
|
||||
"b_format": "avif"
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 637
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 09:10:27 GMT
|
||||
vary: Origin
|
||||
|
||||
settings restore
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/admin/settings/2/restore' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MTYyMjcsImlhdCI6MTc3MTQwNTQyNywiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.X6mTnoiYJ1CUlarQlmwka0VpuDxYTIAV0QfS72AuBXs' \
|
||||
-d ''
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/settings/2/restore
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"ID": 2,
|
||||
"CreatedAt": "2026-02-18T12:07:50+03:00",
|
||||
"UpdatedAt": "2026-02-18T09:11:59.255443Z",
|
||||
"DeletedAt": null,
|
||||
"title": "ewr",
|
||||
"meta_title": "wer",
|
||||
"meta_description": "werwer",
|
||||
"phone": "wer",
|
||||
"url": "wer",
|
||||
"email": "wer",
|
||||
"facebook": "wer",
|
||||
"x": "wer",
|
||||
"instagram": "wer",
|
||||
"whatsapp": "ewr",
|
||||
"pinterest": "wer",
|
||||
"linkedin": "wer",
|
||||
"slogan": "wer",
|
||||
"address": "wre",
|
||||
"copyright": "wer",
|
||||
"map_embed": "wer",
|
||||
"w_logo": "/uploads/logos/wlogo-1771405827623476000.png",
|
||||
"b_logo": "/uploads/logos/blogo-1771405827627412000.png",
|
||||
"is_active": false,
|
||||
"w_width": 111,
|
||||
"w_height": 111,
|
||||
"w_quality": 100,
|
||||
"w_format": "avif",
|
||||
"b_width": 111,
|
||||
"b_height": 111,
|
||||
"b_quality": 100,
|
||||
"b_format": "avif"
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 637
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 09:11:59 GMT
|
||||
vary: Origin
|
||||
|
||||
Responses
|
||||
Code Description
|
||||
200
|
||||
|
||||
##################
|
||||
settings silmek
|
||||
|
||||
curl -X 'DELETE' \
|
||||
'http://localhost:8080/api/v1/admin/settings/2' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MTYyMjcsImlhdCI6MTc3MTQwNTQyNywiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.X6mTnoiYJ1CUlarQlmwka0VpuDxYTIAV0QfS72AuBXs'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/settings/2
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Undocumented
|
||||
|
||||
Response body
|
||||
|
||||
{
|
||||
"id": 2,
|
||||
"message": "setting deleted successfully"
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 49
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 09:13:23 GMT
|
||||
vary: Origin
|
||||
|
||||
Responses
|
||||
Code Description
|
||||
204
|
||||
|
||||
No Content
|
||||
400
|
||||
|
||||
Bad Request
|
||||
|
||||
{
|
||||
"additionalProp1":
|
||||
|
||||
|
||||
####################
|
||||
hepsini listele
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/settings' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MTYyMjcsImlhdCI6MTc3MTQwNTQyNywiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.X6mTnoiYJ1CUlarQlmwka0VpuDxYTIAV0QfS72AuBXs'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/settings
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"ID": 2,
|
||||
"CreatedAt": "2026-02-18T12:07:50+03:00",
|
||||
"UpdatedAt": "2026-02-18T12:10:27.629+03:00",
|
||||
"DeletedAt": null,
|
||||
"title": "ewr",
|
||||
"meta_title": "wer",
|
||||
"meta_description": "werwer",
|
||||
"phone": "wer",
|
||||
"url": "wer",
|
||||
"email": "wer",
|
||||
"facebook": "wer",
|
||||
"x": "wer",
|
||||
"instagram": "wer",
|
||||
"whatsapp": "ewr",
|
||||
"pinterest": "wer",
|
||||
"linkedin": "wer",
|
||||
"slogan": "wer",
|
||||
"address": "wre",
|
||||
"copyright": "wer",
|
||||
"map_embed": "wer",
|
||||
"w_logo": "/uploads/logos/wlogo-1771405827623476000.png",
|
||||
"b_logo": "/uploads/logos/blogo-1771405827627412000.png",
|
||||
"is_active": false,
|
||||
"w_width": 111,
|
||||
"w_height": 111,
|
||||
"w_quality": 100,
|
||||
"w_format": "avif",
|
||||
"b_width": 111,
|
||||
"b_height": 111,
|
||||
"b_quality": 100,
|
||||
"b_format": "avif"
|
||||
},
|
||||
{
|
||||
"ID": 1,
|
||||
"CreatedAt": "2026-02-18T12:06:07.242+03:00",
|
||||
"UpdatedAt": "2026-02-18T12:06:07.242+03:00",
|
||||
"DeletedAt": null,
|
||||
"title": "Title",
|
||||
"meta_title": "Meta title",
|
||||
"meta_description": "Meta description",
|
||||
"phone": "Phone",
|
||||
"url": "URL",
|
||||
"email": "Email",
|
||||
"facebook": "Facebook",
|
||||
"x": "x",
|
||||
"instagram": "Instagram",
|
||||
"whatsapp": "Whatsapp",
|
||||
"pinterest": "Pinterest",
|
||||
"linkedin": "Linkedin",
|
||||
"slogan": "Slogan",
|
||||
"address": "Address",
|
||||
"copyright": "Copyright",
|
||||
"map_embed": "Map embed",
|
||||
"w_logo": "/uploads/logos/wlogo-1771405567230290000.png",
|
||||
"b_logo": "/uploads/logos/blogo-1771405567233377000.png",
|
||||
"is_active": true,
|
||||
"w_width": 100,
|
||||
"w_height": 100,
|
||||
"w_quality": 100,
|
||||
"w_format": "avif",
|
||||
"b_width": 100,
|
||||
"b_height": 100,
|
||||
"b_quality": 100,
|
||||
"b_format": "avif"
|
||||
}
|
||||
],
|
||||
"page": 1,
|
||||
"per_page": 20,
|
||||
"total": 2
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 1376
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 09:31:04 GMT
|
||||
|
||||
sadece softdelete edilmisleri listele
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/settings?soft=only' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MTYyMjcsImlhdCI6MTc3MTQwNTQyNywiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.X6mTnoiYJ1CUlarQlmwka0VpuDxYTIAV0QfS72AuBXs'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/settings?soft=only
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"ID": 2,
|
||||
"CreatedAt": "2026-02-18T12:07:50+03:00",
|
||||
"UpdatedAt": "2026-02-18T12:10:27.629+03:00",
|
||||
"DeletedAt": "2026-02-18T12:32:38.237+03:00",
|
||||
"title": "ewr",
|
||||
"meta_title": "wer",
|
||||
"meta_description": "werwer",
|
||||
"phone": "wer",
|
||||
"url": "wer",
|
||||
"email": "wer",
|
||||
"facebook": "wer",
|
||||
"x": "wer",
|
||||
"instagram": "wer",
|
||||
"whatsapp": "ewr",
|
||||
"pinterest": "wer",
|
||||
"linkedin": "wer",
|
||||
"slogan": "wer",
|
||||
"address": "wre",
|
||||
"copyright": "wer",
|
||||
"map_embed": "wer",
|
||||
"w_logo": "/uploads/logos/wlogo-1771405827623476000.png",
|
||||
"b_logo": "/uploads/logos/blogo-1771405827627412000.png",
|
||||
"is_active": false,
|
||||
"w_width": 111,
|
||||
"w_height": 111,
|
||||
"w_quality": 100,
|
||||
"w_format": "avif",
|
||||
"b_width": 111,
|
||||
"b_height": 111,
|
||||
"b_quality": 100,
|
||||
"b_format": "avif"
|
||||
}
|
||||
],
|
||||
"page": 1,
|
||||
"per_page": 20,
|
||||
"total": 1
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 702
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 09:32:56 GMT
|
||||
|
||||
Responses
|
||||
Code
|
||||
|
||||
hem soft delete hemde delete olmayan lari listele
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/settings?soft=with' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzE0MTYyMjcsImlhdCI6MTc3MTQwNTQyNywiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.X6mTnoiYJ1CUlarQlmwka0VpuDxYTIAV0QfS72AuBXs'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/settings?soft=with
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"ID": 2,
|
||||
"CreatedAt": "2026-02-18T12:07:50+03:00",
|
||||
"UpdatedAt": "2026-02-18T12:10:27.629+03:00",
|
||||
"DeletedAt": "2026-02-18T12:32:38.237+03:00",
|
||||
"title": "ewr",
|
||||
"meta_title": "wer",
|
||||
"meta_description": "werwer",
|
||||
"phone": "wer",
|
||||
"url": "wer",
|
||||
"email": "wer",
|
||||
"facebook": "wer",
|
||||
"x": "wer",
|
||||
"instagram": "wer",
|
||||
"whatsapp": "ewr",
|
||||
"pinterest": "wer",
|
||||
"linkedin": "wer",
|
||||
"slogan": "wer",
|
||||
"address": "wre",
|
||||
"copyright": "wer",
|
||||
"map_embed": "wer",
|
||||
"w_logo": "/uploads/logos/wlogo-1771405827623476000.png",
|
||||
"b_logo": "/uploads/logos/blogo-1771405827627412000.png",
|
||||
"is_active": false,
|
||||
"w_width": 111,
|
||||
"w_height": 111,
|
||||
"w_quality": 100,
|
||||
"w_format": "avif",
|
||||
"b_width": 111,
|
||||
"b_height": 111,
|
||||
"b_quality": 100,
|
||||
"b_format": "avif"
|
||||
},
|
||||
{
|
||||
"ID": 1,
|
||||
"CreatedAt": "2026-02-18T12:06:07.242+03:00",
|
||||
"UpdatedAt": "2026-02-18T12:06:07.242+03:00",
|
||||
"DeletedAt": null,
|
||||
"title": "Title",
|
||||
"meta_title": "Meta title",
|
||||
"meta_description": "Meta description",
|
||||
"phone": "Phone",
|
||||
"url": "URL",
|
||||
"email": "Email",
|
||||
"facebook": "Facebook",
|
||||
"x": "x",
|
||||
"instagram": "Instagram",
|
||||
"whatsapp": "Whatsapp",
|
||||
"pinterest": "Pinterest",
|
||||
"linkedin": "Linkedin",
|
||||
"slogan": "Slogan",
|
||||
"address": "Address",
|
||||
"copyright": "Copyright",
|
||||
"map_embed": "Map embed",
|
||||
"w_logo": "/uploads/logos/wlogo-1771405567230290000.png",
|
||||
"b_logo": "/uploads/logos/blogo-1771405567233377000.png",
|
||||
"is_active": true,
|
||||
"w_width": 100,
|
||||
"w_height": 100,
|
||||
"w_quality": 100,
|
||||
"w_format": "avif",
|
||||
"b_width": 100,
|
||||
"b_height": 100,
|
||||
"b_quality": 100,
|
||||
"b_format": "avif"
|
||||
}
|
||||
],
|
||||
"page": 1,
|
||||
"per_page": 20,
|
||||
"total": 2
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 1403
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 09:34:15 GMT
|
||||
|
||||
Responses
|
||||
Code Description
|
||||
200
|
||||
|
||||
OK
|
||||
|
||||
259
frontend/belgeler/admin_tags.md
Normal file
259
frontend/belgeler/admin_tags.md
Normal file
@@ -0,0 +1,259 @@
|
||||
Proje `frontend` klasörü altında yapılandırılmıştır. Gerekli tüm paketler (`package.json`) önceden yüklenmiştir:
|
||||
- **Framework:** Next.js 16 (App Router)
|
||||
- **UI:** React 19, Tailwind CSS v4, shadcn/ui
|
||||
- **İkonlar:** lucide-react
|
||||
- **Validasyon:** Zod
|
||||
- **Auth:** NextAuth.js
|
||||
- **Bildirimler:** SweetAlert2
|
||||
- **Güvenlik:** nextjs-turnstile (Cloudflare)
|
||||
- **Senin ile sadece Frontend Üstünde Çalışıyorum**
|
||||
- **Backend ile ilgili bir şey Yapman Gerekirse Bana Söylemen Yeterli**
|
||||
|
||||
#######################
|
||||
Silnmis ve silinmemiş hepsini getirir
|
||||
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/tags?soft=with' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTY3NDEsImlhdCI6MTc3MTM4NTk0MSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.yFU_fmErhi50MgvP7PYHDr0E-Dp5FUlSnJP5OmYgqG8'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/tags?soft=with
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"id": 10,
|
||||
"name": "Travel"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": "Food"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "Nature"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "Life"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "Coding"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "Tutorial"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Api"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "Web"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "Gin"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Go"
|
||||
}
|
||||
],
|
||||
"page": 1,
|
||||
"per_page": 20,
|
||||
"total": 10
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 281
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 03:41:13 GMT
|
||||
|
||||
#######################
|
||||
Sadece silinmiş tagları getir
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/tags?soft=only' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTY3NDEsImlhdCI6MTc3MTM4NTk0MSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.yFU_fmErhi50MgvP7PYHDr0E-Dp5FUlSnJP5OmYgqG8'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/tags?soft=only
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"items": null,
|
||||
"page": 1,
|
||||
"per_page": 20,
|
||||
"total": 0
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 47
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 03:39:38 GMT
|
||||
|
||||
Responses
|
||||
Code Description
|
||||
200
|
||||
|
||||
OK
|
||||
|
||||
#######################
|
||||
Yeni Tag Olusturu
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/admin/tags' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTY3NDEsImlhdCI6MTc3MTM4NTk0MSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.yFU_fmErhi50MgvP7PYHDr0E-Dp5FUlSnJP5OmYgqG8' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"name": "yenitag"
|
||||
}'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/tags
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
201
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"id": 11,
|
||||
"name": "yenitag"
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 35
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 03:42:05 GMT
|
||||
vary: Origin
|
||||
|
||||
#######################
|
||||
|
||||
tagi gunceller
|
||||
curl -X 'PUT' \
|
||||
'http://localhost:8080/api/v1/admin/tags/11' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTY3NDEsImlhdCI6MTc3MTM4NTk0MSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.yFU_fmErhi50MgvP7PYHDr0E-Dp5FUlSnJP5OmYgqG8' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"name": "update"
|
||||
}'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/tags/11
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"id": 11,
|
||||
"name": "update"
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 34
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 03:43:10 GMT
|
||||
vary: Origin
|
||||
|
||||
#######################
|
||||
|
||||
tagi siler
|
||||
curl -X 'DELETE' \
|
||||
'http://localhost:8080/api/v1/admin/tags/11' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTY3NDEsImlhdCI6MTc3MTM4NTk0MSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.yFU_fmErhi50MgvP7PYHDr0E-Dp5FUlSnJP5OmYgqG8'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/tags/11
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
204
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
date: Wed,18 Feb 2026 03:43:45 GMT
|
||||
vary: Origin
|
||||
|
||||
Responses
|
||||
|
||||
#######################
|
||||
|
||||
tag restore
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/admin/tags/11/restore' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTcyMzksImlhdCI6MTc3MTM4NjQzOSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.ueKzmNpcFfyZlwruom6odx3ZegIJG_WCr5xJuepiG64' \
|
||||
-d ''
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/tags/11/restore
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"id": 11,
|
||||
"name": "update"
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 34
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 03:47:36 GMT
|
||||
vary: Origin
|
||||
112
frontend/belgeler/admin_user.md
Normal file
112
frontend/belgeler/admin_user.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Admin Panel — Görev Tanımı (Next.js 16 + TypeScript)
|
||||
|
||||
## Kısa Özet
|
||||
Bu görevde Next.js 16 ve paylaştığın paketler kullanılarak önce masaüstü öncelikli,
|
||||
responsive bir Admin Paneli geliştirilecek; Admin
|
||||
Kod üretimi için aşağıdaki gereksinimler ve kabul kriterleri tam
|
||||
uygulanmalıdır.
|
||||
|
||||
## Teknoloji Yığını (Zorunlu)
|
||||
- Next.js 16 (App Router /app)
|
||||
- React 19, TypeScript
|
||||
- Tailwind CSS v4, shadcn bileşenleri
|
||||
- class-variance-authority, tailwind-merge
|
||||
- lucide-react (ikonlar)
|
||||
- sweetalert2 (bildirimler/konfirmasyonlar)
|
||||
- zod (validasyon)
|
||||
- next-auth (kimlik doğrulama)
|
||||
- nextjs-turnstile (Cloudflare Turnstile entegrasyonu)
|
||||
- tw-animate-css (isteğe bağlı animasyonlar)
|
||||
|
||||
Yeni büyük kütüphaneler eklemek gerekiyorsa önceden onay istenmelidir.
|
||||
Küçük yardımcı util paketleri gerektiğinde kabul edilebilir ama öncelik mevcut paketlerle çözmek.
|
||||
|
||||
## Tasarım Sistemi ve UI
|
||||
- shadcn + Tailwind üzerinde tutarlı bir design-system oluştur: tokenlar (renk, spacing, tipografi), light/dark tema.
|
||||
- Temel component seti: Button, Input, Select, TextArea, Modal, Table, Pagination, Badge, Toast, Card, Form.
|
||||
- class-variance-authority ile variant/size yönetimi, tailwind-merge ile conditional class birleştirme.
|
||||
- İkonlar lucide-react ile sağlanacak.
|
||||
- Erişilebilirlik: semantic HTML, aria attributeleri, klavye erişimi, WCAG AA hedefleri.
|
||||
|
||||
## Mimari ve Veri Akışı
|
||||
- App Router (app/) kullan, sunucu bileşenleri (server components) ile veri yüklemesi/SSR; client components interaktivite için.
|
||||
- Veri yüklemelerinde sunucu tarafı yükleme (server components) tercih edilir; client-side filtreleme/paginasyon için fetch + useState/useEffect kullanılabilir.
|
||||
- Global state gerekiyorsa React Context ile minimal çözüm (yeni global state kütüphanesi eklenmeyecek).
|
||||
|
||||
## Kimlik Doğrulama & Yetkilendirme
|
||||
- NextAuth ile güvenli oturum/JWT tabanlı kimlik doğrulama uygulanacak.
|
||||
- Role-based access control: en az iki rol (superadmin, admin).
|
||||
- Admin rotaları server-side yetki kontrolü ile korunacak (middleware veya server actions).
|
||||
- /admin/login sayfasına Cloudflare Turnstile (nextjs-turnstile) entegre edilecek.
|
||||
|
||||
## Routing & Sayfalar (Zorunlu)
|
||||
- /admin/login
|
||||
- /admin → /admin yönlendirme (Dashboard)
|
||||
- /admin (KPI kartları, son işlemler, hızlı aksiyonlar)
|
||||
- /admin/users (liste, arama, filtre, pagination, CSV export)
|
||||
- /admin/users/[id] (profil, roller, aktif/devre dışı)
|
||||
- /admin/products (CRUD: liste, oluştur, düzenle, sil)
|
||||
- /admin/orders (liste, detay, durum güncelleme)
|
||||
- /admin/settings (genel, güvenlik, entegrasyonlar)
|
||||
- /admin/profile
|
||||
|
||||
## Veri Modelleri (Örnek)
|
||||
- Users: id, name, email, role, status, createdAt
|
||||
- Products: id, title, sku, price, inventory, images[], status
|
||||
- Orders: id, userId, items[], total, status, createdAt
|
||||
|
||||
(Not: Backend yoksa örnek/mock endpoint’ler veya mevcut API ile uyumlu yapı sağlanmalı.)
|
||||
|
||||
## Formlar & Validasyon
|
||||
- Tüm formlarda Zod ile hem client-side hem server-side validasyon.
|
||||
- Form submitleri server actions veya route handlers ile işlenmeli.
|
||||
- Başarı/hata bildirimleri için sweetalert2 kullanılacak.
|
||||
|
||||
## Dosya/Resim Yükleme
|
||||
- Gerçek bir backend/3rd-party (S3) yoksa: client-side önizleme sağlayan placeholder upload akışı oluştur; upload endpoint için gerekli iskelet/protokol hazır olsun.
|
||||
|
||||
## Güvenlik
|
||||
- Tüm admin rotaları server-side yetkilendirmeyle korunacak.
|
||||
- Hassas veriler .env ile saklanacak (README’de açıkça listelenecek).
|
||||
- XSS/CSRF/SSRF risklerini azaltacak NextAuth & server actions en iyi uygulamalarına uyulacak.
|
||||
|
||||
## Performans & Optimizasyon
|
||||
- Hedef: sayfa başlangıç süresi < 1.5s (kritik CSS minimal, resimler optimize).
|
||||
- Lazy load, code-splitting, image optimization kullanımı önerilir.
|
||||
|
||||
## Test & Kalite
|
||||
- TypeScript tipleri zorunlu, ESLint konfigürasyonuna uyulacak.
|
||||
- Component-level testler opsiyonel; ek paket gerekiyorsa sonradan onay alınacak.
|
||||
- README: kurulum, env değişkenleri, çalıştırma ve mimari kısa açıklama olacak.
|
||||
|
||||
## Hata Yönetimi & İzleme
|
||||
- Merkezi error handling mekanizması.
|
||||
- Kullanıcıya sweetalert2 ile başarılı/başarısız geri bildirimleri göster.
|
||||
|
||||
## Internationalization
|
||||
- Proje i18n'ye hazır olmalı (tüm metinler merkezi çeviri kaynağından çekilecek).
|
||||
|
||||
## Kabul Kriterleri (Öncelikli)
|
||||
1. Admin login çalışıyor; Turnstile doğrulaması entegre ve çalışır.
|
||||
2. Rol tabanlı erişim ile korunan tüm /admin sayfalarına yetkisiz erişim engelleniyor.
|
||||
3. Dashboard KPI kartları ve tablolar sunuyor; kullanıcı ve ürün CRUD fonksiyonları tamam.
|
||||
4. Tüm formlar Zod ile client ve server validasyonu sağlıyor.
|
||||
5. Component kütüphanesi shadcn + Tailwind ile tutarlı, responsive ve erişilebilir.
|
||||
6. UX geri bildirimleri sweetalert2 ile gösteriliyor.
|
||||
7. Kod TypeScript ile tam tiplenmiş ve ESLint uyarılarına duyarlı.
|
||||
|
||||
## Teslimat (Çıktı)
|
||||
- Çalışır Next.js projesi (kaynak kod).
|
||||
- README: kurulum, env değişkenleri (NEXTAUTH_URL, NEXTAUTH_SECRET, DATABASE_URL, TURNSTILE_SITEKEY, TURNSTILE_SECRET vb.), çalıştırma talimatları.
|
||||
- Temel component listesi ve kısa kullanım notları.
|
||||
- Kabul testi checklist'i (madde madde doğrulanabilir).
|
||||
|
||||
## Ek Kurallar & Notlar
|
||||
- Yeni ana kütüphaneler eklemeden önce onay iste.
|
||||
- Tasarım ve component kararları tutarlılık için belgelenmeli.
|
||||
- Admin tamamlandıktan sonra müşteri-facing frontend için aynı design-system kullanılacak; bu aşama ayrı kabul kriterleriyle planlanacak.
|
||||
|
||||
---
|
||||
|
||||
Bu dosyayı doğrudan görev olarak kullan:
|
||||
ve detayli bir kulanama kılavuzu hazırla.
|
||||
306
frontend/belgeler/admin_user_crud.md
Normal file
306
frontend/belgeler/admin_user_crud.md
Normal file
@@ -0,0 +1,306 @@
|
||||
frontend
|
||||
Proje `frontend` klasörü altında yapılandırılmıştır. Gerekli tüm paketler (`package.json`) önceden yüklenmiştir:
|
||||
- **Framework:** Next.js 16 (App Router)
|
||||
- **UI:** React 19, Tailwind CSS v4, shadcn/ui
|
||||
- **İkonlar:** lucide-react
|
||||
- **Validasyon:** Zod
|
||||
- **Auth:** NextAuth.js
|
||||
- **Bildirimler:** SweetAlert2
|
||||
- **Güvenlik:** nextjs-turnstile (Cloudflare)
|
||||
|
||||
Hem softdelete edilmisler hermse aktif olan userleri Userler
|
||||
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/users?soft=with' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTQ1NjksImlhdCI6MTc3MTM4Mzc2OSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.HCXkj1sYeR-1sXCvIQDgzgLuRVWo2NwI5M0WFTsbEtU'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/users?soft=with
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"id": 12,
|
||||
"username": "aaaa bbb cccc ddddd",
|
||||
"email": "arxxxxes2000@gmail.com",
|
||||
"email_verified": true,
|
||||
"is_admin": false
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"username": "update",
|
||||
"email": "update@update.cem",
|
||||
"email_verified": true,
|
||||
"is_admin": false
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"username": "asasa fgfg",
|
||||
"email": "aaaareaaas2ddd000@gmail.com",
|
||||
"email_verified": true,
|
||||
"is_admin": false,
|
||||
"deleted_at": "2026-02-18T06:20:56.99+03:00"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"username": "dfgdfg dfgdfg",
|
||||
"email": "ares2ggddd000@gmail.com",
|
||||
"email_verified": false,
|
||||
"is_admin": false
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"username": "vbcvbcvbb",
|
||||
"email": "ares2000cvbcvb@gmail.com",
|
||||
"email_verified": true,
|
||||
"is_admin": false
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"username": "qweqweqwe",
|
||||
"email": "areseeeeee2000@gmail.com",
|
||||
"email_verified": false,
|
||||
"is_admin": false
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"username": "adminsss@demo.com",
|
||||
"email": "ares2sss000@gmail.com",
|
||||
"email_verified": true,
|
||||
"is_admin": false
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"username": "aresds",
|
||||
"email": "ares@asdf.com",
|
||||
"email_verified": true,
|
||||
"is_admin": false
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"username": "sss",
|
||||
"email": "sss@ss.com",
|
||||
"email_verified": false,
|
||||
"is_admin": false
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"username": "ddd",
|
||||
"email": "ddd@dd.com",
|
||||
"email_verified": false,
|
||||
"is_admin": false
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"username": "beyhan",
|
||||
"email": "beyhan@beyhan.dev",
|
||||
"email_verified": true,
|
||||
"is_admin": true
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"username": "admin",
|
||||
"email": "admin@gauth.local",
|
||||
"email_verified": true,
|
||||
"is_admin": false
|
||||
}
|
||||
],
|
||||
"page": 1,
|
||||
"per_page": 20,
|
||||
"total": 12
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 1302
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 03:30:26 GMT
|
||||
|
||||
#################
|
||||
sadece soft delete edilmis Userler
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/users?soft=only' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTE5NDgsImlhdCI6MTc3MTM4MTE0OCwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.MmYgMyLECZD1TcDOvDZCyWRKk9ogjFYhXnTXYUGzhMo'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/users?soft=only
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"items": null,
|
||||
"page": 1,
|
||||
"per_page": 20,
|
||||
"total": 0
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 47
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 02:22:00 GMT
|
||||
|
||||
############
|
||||
tek useri goster
|
||||
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/admin/users/11' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTE5NDgsImlhdCI6MTc3MTM4MTE0OCwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.MmYgMyLECZD1TcDOvDZCyWRKk9ogjFYhXnTXYUGzhMo'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/users/11
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"id": 11,
|
||||
"username": "zxzx jkhjk",
|
||||
"email": "addredds2dd000@gmail.com",
|
||||
"email_verified": true,
|
||||
"is_admin": false
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 128
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 02:23:44 GMT
|
||||
|
||||
#################
|
||||
user iguncelle
|
||||
curl -X 'PUT' \
|
||||
'http://localhost:8080/api/v1/admin/users/11' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTE5NDgsImlhdCI6MTc3MTM4MTE0OCwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.MmYgMyLECZD1TcDOvDZCyWRKk9ogjFYhXnTXYUGzhMo' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"email": "update@update.cem",
|
||||
"is_admin": false,
|
||||
"username": "update"
|
||||
}'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/users/11
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"id": 11,
|
||||
"username": "update",
|
||||
"email": "update@update.cem",
|
||||
"email_verified": true,
|
||||
"is_admin": false
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 105
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 02:25:24 GMT
|
||||
vary: Origin
|
||||
|
||||
Responses
|
||||
|
||||
#################
|
||||
useri sil
|
||||
curl -X 'DELETE' \
|
||||
'http://localhost:8080/api/v1/admin/users/10' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTE5NDgsImlhdCI6MTc3MTM4MTE0OCwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.MmYgMyLECZD1TcDOvDZCyWRKk9ogjFYhXnTXYUGzhMo'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/users/10
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Undocumented
|
||||
|
||||
Response body
|
||||
|
||||
{
|
||||
"id": 10,
|
||||
"message": "user deleted successfully"
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 47
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 02:27:59 GMT
|
||||
vary: Origin
|
||||
|
||||
#################
|
||||
User Restore
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/admin/users/10/restore' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzOTE5NDgsImlhdCI6MTc3MTM4MTE0OCwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.MmYgMyLECZD1TcDOvDZCyWRKk9ogjFYhXnTXYUGzhMo' \
|
||||
-d ''
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/admin/users/10/restore
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
|
||||
{
|
||||
"data": {
|
||||
"id": 10,
|
||||
"username": "sfsdf. rtyrty",
|
||||
"email": "aaaareaaas2ddd000@gmail.com",
|
||||
"email_verified": true,
|
||||
"is_admin": false
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 122
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Wed,18 Feb 2026 02:28:49 GMT
|
||||
vary: Origin
|
||||
194
frontend/belgeler/login_register.md
Normal file
194
frontend/belgeler/login_register.md
Normal file
@@ -0,0 +1,194 @@
|
||||
once login ve registeri yapalim
|
||||
frontend
|
||||
Proje `frontend` klasörü altında yapılandırılmıştır. Gerekli tüm paketler (`package.json`) önceden yüklenmiştir:
|
||||
- **Framework:** Next.js 16 (App Router)
|
||||
- **UI:** React 19, Tailwind CSS v4, shadcn/ui
|
||||
- **İkonlar:** lucide-react
|
||||
- **Validasyon:** Zod
|
||||
- **Auth:** NextAuth.js
|
||||
- **Bildirimler:** SweetAlert2
|
||||
- **Güvenlik:** nextjs-turnstile (Cloudflare)
|
||||
|
||||
Login Backend
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/auth/login' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"email": "beyhan@beyhan.dev",
|
||||
"password": "1923btO**"
|
||||
}'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/auth/login
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
Download
|
||||
|
||||
{
|
||||
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzNzA1NzcsImlhdCI6MTc3MTM1OTc3NywiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.zBCWJlsJxOvB4EzGn5ReutjocF884kJjFsPojbMCWiY",
|
||||
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzY1NDM3NzcsImlhdCI6MTc3MTM1OTc3Nywic3ViIjoyLCJ0b2tlbl90eXBlIjoicmVmcmVzaCJ9.1ASz8UcbuWY7zKRipoFuHbpTBcBMWEbp4TuNKlFffmA",
|
||||
"user": {
|
||||
"id": 2,
|
||||
"username": "beyhan",
|
||||
"email": "beyhan@beyhan.dev",
|
||||
"email_verified": true,
|
||||
"is_admin": true
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 498
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Tue,17 Feb 2026 20:22:57 GMT
|
||||
vary: Origin
|
||||
|
||||
Responses
|
||||
|
||||
|
||||
Register Backend
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/auth/register' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"email": "ares@asdf.com",
|
||||
"password": "12345678",
|
||||
"username": "aresds"
|
||||
}'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/auth/register
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
201
|
||||
Response body
|
||||
Download
|
||||
|
||||
{
|
||||
"message": "Registration successful. Please check your email to verify your account.",
|
||||
"user": {
|
||||
"id": 5,
|
||||
"username": "aresds",
|
||||
"email": "ares@asdf.com",
|
||||
"email_verified": false,
|
||||
"is_admin": false
|
||||
}
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 186
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Tue,17 Feb 2026 20:24:12 GMT
|
||||
vary: Origin
|
||||
|
||||
Email Token Dogrulama
|
||||
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/auth/verify-email?token=e77abe8a0843b480cb00174d1a234568dea7ff8965c307365617f15726b20b00' \
|
||||
-H 'accept: application/json'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/auth/verify-email?token=e77abe8a0843b480cb00174d1a234568dea7ff8965c307365617f15726b20b00
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
Download
|
||||
|
||||
{
|
||||
"message": "Email verified successfully"
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 41
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Tue,17 Feb 2026 20:26:14 GMT
|
||||
|
||||
Refresh Token Backend
|
||||
|
||||
curl -X 'POST' \
|
||||
'http://localhost:8080/api/v1/auth/refresh' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{
|
||||
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzY1NDM3NzcsImlhdCI6MTc3MTM1OTc3Nywic3ViIjoyLCJ0b2tlbl90eXBlIjoicmVmcmVzaCJ9.1ASz8UcbuWY7zKRipoFuHbpTBcBMWEbp4TuNKlFffmA"
|
||||
}'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/auth/refresh
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
Download
|
||||
|
||||
{
|
||||
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzNzExMjUsImlhdCI6MTc3MTM2MDMyNSwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.aW_xKEF2bWcC1xJdUTG4RB8T4ITH2ChnXNIqr8kAqXE",
|
||||
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzY1NDQzMjUsImlhdCI6MTc3MTM2MDMyNSwic3ViIjoyLCJ0b2tlbl90eXBlIjoicmVmcmVzaCJ9.ybzA7oG7RJFSA5azD5h3mpwEXNapb2NyO4sWV-m3Jd4"
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
access-control-allow-credentials: true
|
||||
access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With
|
||||
access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||
access-control-allow-origin: http://localhost:8080
|
||||
access-control-max-age: 600
|
||||
content-length: 396
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Tue,17 Feb 2026 20:32:05 GMT
|
||||
vary: Origin
|
||||
############################
|
||||
Auth ME
|
||||
curl -X 'GET' \
|
||||
'http://localhost:8080/api/v1/auth/me' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzEzNzIyMzIsImlhdCI6MTc3MTM2MTQzMiwiaXNfYWRtaW4iOnRydWUsInN1YiI6MiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.LfpH9ldKqR2h1zqwXYHPNsqrzh20pYhFAdgCCEbKtwc'
|
||||
|
||||
Request URL
|
||||
|
||||
http://localhost:8080/api/v1/auth/me
|
||||
|
||||
Server response
|
||||
Code Details
|
||||
200
|
||||
Response body
|
||||
Download
|
||||
|
||||
{
|
||||
"email": "beyhan@beyhan.dev",
|
||||
"email_verified": true,
|
||||
"id": 2,
|
||||
"is_admin": true,
|
||||
"username": "beyhan"
|
||||
}
|
||||
|
||||
Response headers
|
||||
|
||||
content-length: 94
|
||||
content-type: application/json; charset=utf-8
|
||||
date: Tue,17 Feb 2026 20:51:52 GMT
|
||||
Reference in New Issue
Block a user