X-Tenant başlığıyla nasıl belirteceğinizi anlatır.
Klinik nedir
Klinik, Flextell’de hastaların, randevuların, kullanıcıların ve ayarların bağlı olduğu hesaptır. Panelde Klinikler olarak, API’detenant olarak geçer. Kullanıcı bir kliniğe üyelik (davet kabulü veya klinik oluşturma) yoluyla bağlanır.
Bir klinik isteğinin sonucu üç şeyin kesişimiyle belirlenir:
- Erişim token’ınızdaki scope’lar (uygulamanın ne isteyebileceği).
- Kullanıcının seçtiğiniz klinikteki izinleri (kullanıcının ne yapabileceği).
- Kullanıcının o kliniğe üyeliği.
Klinikleri listeleme
Kullanıcının üyesi olduğu klinikleriGET /api/v1/account/tenants ile alın. Bu çağrı account:read scope’u ister ve X-Tenant göndermez. X-Tenant olarak kullanacağınız geçerli değerlerin kaynağı bu listedir.
Liste, silinmiş klinikleri içermez.
GET /api/v1/account yanıtındaki tenants[] alanında setup_required bulunmaz; bu alan yalnızca GET /api/v1/account/tenants yanıtında gelir.X-Tenant başlığı
Klinik verisi okuyan veya yazan her endpoint, hangi klinikle çalıştığınızıX-Tenant başlığıyla ister. Değer, kliniğin sayısal id değeridir; slug değildir.
Üye olmadığınız bir klinik için de
403 değil 404 TENANT_NOT_FOUND döner. Böylece bir klinik kimliğinin var olup olmadığı dışarıdan anlaşılamaz.X-Timezone başlığı kliniğin saat dilimini (ör. Europe/Istanbul) taşır. Başlığın genel kuralları için İstek başlıkları sayfasına bakın.
Kullanıcının seçili kliniğe göre yapabilecekleri
GET /api/v1/account/roles çağrısı X-Tenant ile seçtiğiniz klinikteki rol adlarını ve izin adlarını döndürür. Kullanıcıya göstereceğiniz düğmeleri ve menüleri bu listeye göre açıp kapatabilirsiniz.
402 döner (bkz. Hatalar).
Klinik gerektirmeyen endpoint’ler
Aşağıdaki endpoint gruplarıX-Tenant istemez:
Diğer tüm klinik endpoint’leri
X-Tenant ister. Bunlara /api/v1/oauth/* (OAuth uygulamaları ve GET /api/v1/oauth/scopes) ve /api/v1/announcements de dahildir. OAuth uygulamalarını yönetirken izin de başlıkta verdiğiniz klinik için kontrol edilir; başka bir klinikteki izin bu istek için geçerli olmaz. Bkz. OAuth uygulamaları.
Duyurular (
/api/v1/announcements) içerik olarak tüm kliniklere ortaktır; yine de çağrı X-Tenant ve View:Announcement izni ister. Bu izin tüm klinik rollerinde bulunur.Klinik değiştirme
Klinik değiştirmek için yeni bir token almanız gerekmez. Aynı access token tüm kliniklerde geçerlidir; yalnızcaX-Tenant değerini değiştirirsiniz. Önerilen akış:
1
Kullanıcıyı doğrulayın
Yetkilendirme kodu ve PKCE akışıyla token alın. Token’ın
account:read scope’unu içerdiğinden emin olun.2
Klinikleri listeleyin
GET /api/v1/account/tenants çağrısını X-Tenant olmadan yapın.3
Kliniği seçin
Kullanıcıya liste gösterin ya da tek klinik varsa doğrudan onu kullanın. Seçilen kliniğin
id değerini saklayın.4
Her istekte gönderin
Klinik endpoint’lerine yaptığınız her çağrıya
X-Tenant: <tenant_id> ekleyin. Başka bir kliniğe geçerken yalnızca bu değeri değiştirin ve izin listesini GET /api/v1/account/roles ile yeniden yükleyin.Hatalar
Klinik endpoint’lerinde istek şu sırayla denetlenir ve ilk başarısız denetim yanıtı belirler:401 (token) → 429 (oran sınırı) → 400/404 (X-Tenant) → 402 (abonelik) → 428 (kurulum) → 403 (scope) → 403 (izin) → 404/422 (kaynak ve doğrulama)
Tek istisna GET /api/v1/account/roles: bu çağrıda scope denetimi X-Tenant denetiminden önce yapılır.
Hata zarfı ve genel hata kodları için Hatalar ve Hata kodları sayfalarına bakın.
402 ve 428 kilitlerinin ayrıntıları ve hangi yolların bu kilitlerden muaf olduğu Erişim kilitleri sayfasındadır.
İlgili sayfalar
İzinler ve görünürlük
Klinik bazında izinlerin ve kayıt görünürlüğünün nasıl çalıştığı.
Scope'lar
Uygulamanızın isteyebileceği scope’lar.
Erişim kilitleri
402 ve 428 yanıtları.
Hesap
Hesap ve klinik endpoint’leri.