Web sitesi ve panel API
http://127.0.0.1:8001/api/v1api/ uygulaması; hekim, klinik ve hekim paneli isteklerini karşılar.
RANDEVU AJANDAM API
Hekim ve klinik web siteleri, yönetim panelleri ve mobil hasta uygulaması için tekil API başvuru kaynağı.
curl -G "http://127.0.0.1:8001/api/v1/public/slots" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "X-Api-Secret: YOUR_API_SECRET" \
--data-urlencode "date=2026-07-20"
{"success":true,"data":{"slots":[...]}}01 / GENEL BAKIŞ
http://127.0.0.1:8001/api/v1api/ uygulaması; hekim, klinik ve hekim paneli isteklerini karşılar.
http://127.0.0.1:8000/api/v1site/ uygulamasında React Native hasta uygulaması için yayınlanır.
Varsayılan portlar: ana site 8000, API 8001, doktor sitesi 8002, klinik sitesi 8003.
02 / GÜVENLİK
İstek türüne göre API anahtarı, Bearer token veya yönetim tokenı kullanılır.
Hekim ve klinik web sitesi uç noktalarında iki header zorunludur.
X-Api-Key: YOUR_API_KEY
X-Api-Secret: YOUR_API_SECRETX-Secret-Key, secret için geriye uyumlu alternatif başlıktır.Önce giriş yapın; dönen tokenı korumalı panel isteklerinde kullanın.
Authorization: Bearer {token}
X-Api-Key: YOUR_API_KEY
X-Api-Secret: YOUR_API_SECRETToken yalnızca giriş yanıtında düz metin olarak döner.Mobil giriş veya kayıt sonrasında yalnızca Bearer token gönderilir.
Authorization: Bearer {token}
Accept: application/json
Content-Type: application/jsonToken geçersiz, süresi dolmuş veya silinmişse 401 döner.X-Api-Secret yalnızca sunucu tarafında saklanmalıdır. Tarayıcıdaki herkese açık JavaScript paketi veya mobil uygulama içine gömülmemelidir.
03 / ENTEGRASYON
Misafir randevusu, uygun slot seçimi ve gerekirse telefon doğrulamasından sonra oluşturulur.
GET /public/profile ve GET /public/services ile formu hazırlayın.
GET /public/slots?date=YYYY-MM-DD çağrısındaki boş slotlardan birini seçin.
OTP etkinse /otp/send ve /otp/verify adımlarıyla telefonu doğrulayın.
POST /public/appointments gövdesinde KVKK onayını, hasta ve randevu alanlarını gönderin.
/public/appointmentsBireysel hekim sitesi üzerinden misafir randevu talebi oluşturur. Başarılı yanıtta yönetim bağlantısı döner.
{
"hizmet_id": 12,
"tarih": "2026-07-20",
"saat": "14:30",
"ad": "Ayşe",
"soyad": "Yılmaz",
"telefon": "05321234567",
"e_posta": "ayse@example.com",
"not": "Kontrol randevusu",
"gorusme_tipi": "yuz_yuze",
"kvkk_onay": true,
"otp_kod": "123456"
}{
"success": true,
"message": "Randevu talebiniz alındı.",
"data": {
"id": 145,
"tarih": "2026-07-20",
"saat": "14:30",
"durum": "beklemede",
"yonetim_url": "https://.../randevu-yonet/..."
}
}| Alan | Tür | Durum | Açıklama |
|---|---|---|---|
hizmet_id | integer | Zorunlu | Seçilen aktif hizmetin ID değeri. |
tarih | string | Zorunlu | Y-m-d; bugün veya sonrası olmalıdır. |
saat | string | Zorunlu | H:i biçiminde, uygun bir slot olmalıdır. |
ad, soyad, telefon | string | Zorunlu | Hasta iletişim bilgileri. |
kvkk_onay | boolean | Zorunlu | true veya kabul edilen form değeri olmalıdır. |
gorusme_tipi | enum | Opsiyonel | yuz_yuze (varsayılan) veya online. |
otp_kod | string | Koşullu | OTP aktifse altı haneli doğrulama kodu. |
04 / ÖRNEKLER
/public/slots?date=2026-07-20Hekimin seçilen gün için boş randevu saatlerini döndürür. Geçmiş tarih kabul edilmez; bugünün geçmiş saatleri yanıttan çıkarılır.
date zorunlu Y-m-d/public/otp/verifyGönderilen SMS kodunu doğrular. Kod altı karakter olmalıdır ve telefon ile ilişkilidir.
{ "telefon": "05321234567", "kod": "123456" }
/doctor/auth/loginSite anahtarıyla doğrulanan hekim için panel oturumu üretir. Klinik panelinde eşdeğer uç nokta /clinic/doctor/auth/login adresidir.
{ "e_posta": "doktor@example.com", "sifre": "guvenli-parola" }
/auth/registerMobil hasta hesabı oluşturur ve doğrudan Bearer token döner.
{ "ad": "Ayşe", "soyad": "Yılmaz", "e_posta": "ayse@example.com", "telefon": "05321234567", "sifre": "en-az-6-karakter", "device": "ios" }
05 / API REFERANSI
Arama kutusu, yol, HTTP metodu, açıklama ve paket adlarında filtreler.
http://127.0.0.1:8001/api/v1/public
/profile
Hekim profilini ve çalışma bilgisini getirir.
/services
Aktif hizmet listesini getirir.
/site-content
Blog, SSS, galeri, yorum ve eğitim paketini getirir.
/educations
Yayındaki eğitimleri listeler.
/educations/{slugOrId}
Eğitim detayı ve form alanlarını getirir.
/educations/apply
Misafir eğitim başvurusu oluşturur.
/slots?date=YYYY-MM-DD
Seçilen günün uygun saatlerini getirir.
/otp/send
Randevu telefonu için doğrulama kodu gönderir.
/otp/verify
Altı haneli telefon doğrulama kodunu onaylar.
/appointments
Misafir randevu talebi oluşturur.
http://127.0.0.1:8001/api/v1/public/clinic
/profile
Klinik profilini ve hekim sayısını getirir.
/doctors
Aktif klinik hekimlerini listeler.
/doctors/{idOrSlug}
Hekim detayını getirir.
/services?doktor_id={id}
Klinik hizmetlerini, isteğe bağlı hekim filtresiyle getirir.
/site-content
Klinik hekimlerinin içeriklerini birleştirir.
/slots?date=YYYY-MM-DD&doktor_id={id}
Hekim için uygun saatleri getirir.
/otp/send
Hekim seçimiyle telefon doğrulama kodu gönderir.
/otp/verify
Telefon doğrulama kodunu onaylar.
/appointments
Klinik üzerinden randevu talebi oluşturur.
http://127.0.0.1:8001/api/v1/public/manage
/{token}
Yönetim bağlantısındaki randevuyu görüntüler.
/{token}/cancel
Randevuyu yönetim tokenı ile iptal eder.
http://127.0.0.1:8001/api/v1/doctor
/auth/login
Hekim paneli için Bearer token üretir.
/auth/me
Oturumdaki hekimin ayrıntılı profilini getirir.
/auth/logout
Mevcut tokenı iptal eder.
/dashboard
Panel özet verilerini getirir.
/profile
Profil bilgilerini günceller.
/profile
Profil bilgisi ve fotoğrafını multipart olarak günceller.
/password
Panel parolasını günceller.
/randevu-ayarlari
Randevu ayarlarını getirir.
/randevu-ayarlari
Randevu ayarlarını günceller.
/calisma-saatleri
Çalışma saatlerini günceller.
/randevular
Randevuları filtreleyerek listeler.
/randevular
Kayıtlı hasta için randevu oluşturur.
/randevular/misafir
Misafir hasta için randevu oluşturur.
/randevular/{id}
Randevu bilgilerini günceller.
/randevular/{id}/durum
Randevu durumunu günceller.
/randevular/{id}/reschedule
Randevu tarih ve saatini değiştirir.
/randevular/{id}
Randevuyu siler.
/takvim/events
Takvim olaylarını getirir.
/takvim/periyot
Randevu periyodunu günceller.
/hastalar
Hastaları listeler.
/hastalar/ara
Hasta araması yapar.
/hastalar
Yeni hasta oluşturur.
/izinler
İzin kayıtlarını listeler.
/izinler
İzin kaydı oluşturur.
/izinler/{id}
İzin kaydını siler.
/hizli-kapat/slots
Hızlı kapatma için slotları getirir.
/hizli-kapat
Seçili slotları kapatır veya açar.
/hizmetler
Hizmetleri listeler.
/hizmetler
Hizmet oluşturur.
/hizmetler/{id}
Hizmeti günceller.
/hizmetler/{id}
Hizmeti siler.
/branslar
Branş listesini getirir.
/web-sitesi
Web sitesi ve API anahtarı bilgisini getirir.
/web-sitesi
Web sitesi kurulumunu kaydeder.
/web-sitesi/api-anahtari
API anahtarlarını yeniler.
http://127.0.0.1:8001/api/v1/doctor
/hakkimda
Hakkımda içeriğini günceller. [hakkimda]
/bloglar
Blogları listeler. [blog]
/bloglar
Blog oluşturur. [blog]
/bloglar/{id}
Blog günceller. [blog]
/bloglar/{id}
Blog siler. [blog]
/faqs
SSS listesini getirir. [faq]
/faqs
SSS oluşturur. [faq]
/faqs/{id}
SSS günceller. [faq]
/faqs/{id}
SSS siler. [faq]
/faqs/{id}/toggle
SSS yayını değiştirir. [faq]
/galeri
Galeri listesini getirir. [galeri]
/galeri
Galeri görseli ekler. [galeri]
/galeri/sirala
Galeri sırasını günceller. [galeri]
/galeri/{id}
Galeri girdisini günceller. [galeri]
/galeri/{id}
Galeri girdisini siler. [galeri]
/yorumlar
Yorumları listeler. [yorum]
/yorumlar/{id}/yanit
Yoruma yanıt ekler. [yorum]
/yorumlar/{id}/durum
Yorum durumunu günceller. [yorum]
/egitimler
Eğitimleri listeler. [egitimler]
/egitimler
Eğitim oluşturur. [egitimler]
/egitimler/{id}/basvurular
Eğitim başvurularını getirir. [egitimler]
/finans/ozet
Finansal özeti getirir. [finans]
/finans/kategoriler
Finans kategorilerini listeler veya oluşturur. [finans]
/finans/gelirler
Gelirleri listeler veya oluşturur. [finans]
/finans/giderler
Giderleri listeler veya oluşturur. [finans]
/finans/hasta-bakiyeleri
Hasta bakiyelerini getirir. [finans]
/finans/rapor
Finans raporunu getirir. [finans]
http://127.0.0.1:8000/api/v1
/auth/login
Hasta girişi yapar ve token üretir.
/auth/register
Hasta kaydı yapar ve token üretir.
/auth/social
Google/Apple giriş uç noktası; henüz 501 döner.
/meta/filters
Branş, il ve görüşme tipi filtrelerini getirir.
/doctors
Hekimleri sayfalı olarak listeler.
/doctors/{id}
Hekim detayını getirir.
/doctors/{id}/slots?tarih=YYYY-MM-DD
Hekim slotlarını getirir.
/clinics
Klinikleri sayfalı olarak listeler.
/clinics/{id}
Klinik detayını getirir.
/map/pins
Harita işaretçilerini getirir.
/blogs
Blogları sayfalı olarak listeler.
/blogs/{id}
Blog detayını getirir.
/services
Hizmetleri sayfalı olarak listeler.
/services/{id}
Hizmet detayını getirir.
/auth/me
Hasta profilini getirir.
/auth/profile
Hasta profilini günceller.
/auth/password
Hasta parolasını günceller.
/auth/logout
Hasta oturumunu kapatır.
/appointments
Hastanın randevularını getirir.
/appointments
Hasta adına randevu oluşturur.
/appointments/{id}/cancel
Hastanın randevusunu iptal eder.
06 / HATALAR
Başarılı JSON yanıtları success: true taşır. Doğrulama ve iş kuralı hataları açıklayıcı message alanıyla döner.
Eksik alan, geçersiz format, dolu slot, yanlış parola veya geçersiz OTP.
Eksik veya yanlış API anahtarı, secret ya da geçersiz Bearer token.
Pasif hesap, yanlış site sahibi veya pakette olmayan özellik.
Uç noktaya ait dakikalık istek sınırı aşıldı. Geri çekilme uygulayın.
İstenen hekim, eğitim veya başka bir kayıt mevcut değil.
Beklenmeyen hata. İsteği güvenli biçimde yeniden deneyin ve kayıt altına alın.
{
"success": false,
"message": "API anahtarı gerekli. X-Api-Key başlığını gönderin."
}
07 / UYGULAMA NOTLARI
JSON isteklerinde Content-Type: application/json gönderin. Fotoğraf içeren panel güncellemeleri için multipart/form-data kullanın.
Liste uç noktaları page ve per_page kabul eder. Maksimum sayfa boyutu uç noktaya göre 40 veya 50'dir. Yanıtlar data.items ve data.meta içerir.
Blog, SSS, galeri, yorum, eğitim ve finans uç noktaları ilgili hekim paket özelliğini gerektirir. Bu durumda API 403 döner.
Randevu uç noktaları hız limiti, honeypot ve yapılandırmaya göre OTP doğrulaması uygular. İstemci, kullanıcıya API hata mesajını anlaşılır biçimde göstermelidir.