Web (Site Kurucu)

courses

18 uç · /api/web/v1/courses

İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 18 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.

GET/api/web/v1/courses/{id}

GET /api/web/v1/donation-campaigns/{id}

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/web/v1/courses/{id}

PUT /api/web/v1/donation-campaigns/{id} — künyenin TAMAMI.

OturumYol parametresi: id
İstek
curl -X PUT "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/web/v1/courses/{id}

DELETE /api/web/v1/ab-tests/{id}

OturumYol parametresi: id

⚠ Silme sayaçları da götürür (on delete cascade) ve bu BİLİNÇLİ: testin sayıları testin dışında bir anlam taşımaz, saklanan bir kalıntı ise "hangi teste aitti" sorusunu cevapsız bırakırdı.

İstek
curl -X DELETE "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/web/v1/courses/{id}/assignments

GET /api/web/v1/courses/{id}/submissions — ödev gelen kutusu.

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/assignments" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/web/v1/courses/{id}/certificates

GET /api/web/v1/courses/{id}/certificates

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/certificates" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/web/v1/courses/{id}/copy

POST /api/web/v1/courses/{id}/copy — kurs kopyalama ve şablon

OturumYol parametresi: id

(BLE22-14541). 🔴 Kopyalanan MÜFREDATTIR: bölümler ve dersler AYNI tx'te doğar. Kayıt, ilerleme ve yayın durumu TAŞINMAZ — kopya her zaman TASLAK doğar.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/copy" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/web/v1/courses/{id}/curriculum

PUT /api/web/v1/courses/{id}/curriculum — müfredat düzenleyici

OturumYol parametresi: id

(BLE22-14537). 🔴 SIRA LİSTENİN KENDİSİDİR: panel position sayıları göndermez, KİMLİK LİSTESİ gönderir ve sunucu tek tx'te yeniden numaralar. Tek tek yamalanan bir sıra, iki eşzamanlı düzenlemede iki "3. ders" üretirdi. ⚠ Listede olmayan bir ders SİLİNMEZ — sırası korunur ve sona alınır. Kaydetmeyi bir silme yoluna çevirmek, ağacı yanlışlıkla budayan bir istemciye tüm müfredatı kaybettirirdi.

İstek
curl -X PUT "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/curriculum" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/web/v1/courses/{id}/lessons

POST /api/web/v1/courses/{id}/lessons

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/lessons" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/web/v1/courses/{id}/question-bank

POST /api/web/v1/courses/{id}/question-bank — BANKA sorusu (quiz_id yok).

OturumYol parametresi: id

🔴 Banka AYRI bir tablo DEĞİL: aynı tabloda quiz_id is null. Ayrı tablo, "bankadaki soruyu sınava kopyala" adımı doğururdu ve düzeltilen bir soru eski sınavlarda YANLIŞ kalırdı.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/question-bank" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/web/v1/courses/{id}/questions

GET /api/web/v1/courses/{id}/questions — ders soruları (moderasyon).

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/questions" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/web/v1/courses/{id}/quizzes

GET /api/web/v1/sites/{site}/donation-campaigns

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/quizzes" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/web/v1/courses/{id}/quizzes

POST /api/web/v1/sites/{site}/ab-tests

OturumYol parametresi: id

🔴 KONTROL VARYANTINI SUNUCU EKLER ve sayfanın CANLI sürümünü kullanır. Kontrolü istemciye bıraktığımız bir sürümde panel yanlış (ya da eski) bir sürümü taban gösterebilirdi — ve karşılaştırmanın tabanı, ziyaretçinin gerçekte gördüğü sayfa OLMAK ZORUNDADIR.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/quizzes" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/web/v1/courses/{id}/report

GET /api/web/v1/ab-tests/{id}/report

OturumYol parametresi: id

🔴 Kazanan İLAN EDİLMEZ, karar ab::anlamliliktan gelir ve eşiğin altında "henüz karar verilemez" der. Ekran oranları yine gösterir — ama hangisinin bir BULGU hangisinin gürültü olduğunu söyleyerek.

İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/report" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/web/v1/courses/{id}/report.csv

GET /api/web/v1/courses/{id}/report.csv

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/report.csv" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/web/v1/courses/{id}/sections

POST /api/web/v1/courses/{id}/sections

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/sections" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/web/v1/courses/{id}/status

PATCH /api/web/v1/ab-tests/{id}/status — başlat / durdur.

OturumYol parametresi: id

🔴 web.publish ister: koşan bir test ziyaretçinin gördüğü içeriği böler.

İstek
curl -X PATCH "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/status" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/web/v1/courses/{id}/students

GET /api/web/v1/courses/{id}/students

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/students" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/web/v1/courses/{id}/students

POST /api/web/v1/courses/{id}/students — ekip kaydı açar (davetli kurs).

OturumYol parametresi: id

🔴 ÜYE OLMAYAN kişiye kayıt açılmaz: kurs kaydı bir ÜYEYE bağlanır ve üyeliği burada uydurmak, hiç rıza vermemiş birine hesap açmaktır (Faz 13'ün kararı). Ekran "önce üye olarak davet et" der.

İstek
curl -X POST "https://{slug}--panel.web.blesyum.app/api/web/v1/courses/<id>/students" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?