Bir projenizde 40 uç nokta olduğunu ve her çağrının aynı Authorization: Bearer ... ile X-Api-Version başlıklarını gerektirdiğini düşünün. Bu iki satırı her isteğe elle eklemek hem yavaştır hem de tutarsızlıklara yol açar: bir uç noktada jeton unutulur, başka birinde sürüm farklıdır ve yalnızca birkaç rotada görünen 401 hatalarını ayıklamak zorunda kalırsınız.
Daha sürdürülebilir yaklaşım, bu değerleri bir kez tanımlayıp isteklerde otomatik olarak kullanmaktır. Apidog, parametreleri proje düzeyinde tanımlamanıza, jetonları değişken olarak referans almanıza ve bunları tüm uç noktalara uygulamanıza olanak tanır.
Bu rehberde şunları uygulayacaksınız:
- Proje genelinde
AuthorizationveX-Api-Versionbaşlığı ekleme - Jetonu ortam değişkeninde saklama
- Başlığın gerçekten ağa gönderildiğini doğrulama
- Yalnızca belirli bir klasöre başlık ekleme
- Aynı yapılandırmayı Apidog CLI ile otomasyonda kullanma
Değişken kullanımı hakkında daha fazla ayrıntı için Apidog'da değişkenlere hakim olma rehberine bakabilirsiniz.
HTTP başlıkları Apidog'a özgü değildir. MDN HTTP başlıkları referansında açıklandığı gibi, istekle birlikte gönderilen anahtar/değer çiftleridir. Apidog burada bu değerleri her uç noktada tekrar yazmak yerine merkezi olarak yönetmenizi sağlar.
Global parametreler ne anlama gelir?
Apidog'da global parametre, tek bir uç noktaya değil tüm projeye uygulanan istek parametresidir. Bir kez tanımlandığında, eşleşen isteklere otomatik olarak eklenir.
Global parametreleri şu konumlarda kullanabilirsiniz:
-
Başlıklar:
Authorization,X-Api-Versiongibi HTTP başlıkları - Çerezler: Oturum çerezleri
-
Sorgu:
?api_key=...gibi URL sorgu parametreleri - Gövde: Her isteğin gövdesinde bulunması gereken alanlar
Bu yazıdaki yetkilendirme örneği için Başlıklar seçeneğini kullanacağız.
Global parametreler, uç nokta düzeyinde tanımlanan parametrelerden daha düşük önceliğe sahiptir. Bir istek kendi
Authorizationbaşlığını içeriyorsa, uç nokta düzeyindeki değer kullanılır. Bu davranış, global parametreleri zorlayıcı bir geçersiz kılma yerine güvenli varsayılanlar hâline getirir.
Her isteğe global başlık ekleme
Hedefimiz, projedeki tüm uç noktalara tek tek dokunmadan şu iki başlığı eklemek:
Authorization: Bearer {{token}}
X-Api-Version: 2024-08-01
1. Ortam Yönetimi'ni açın
Apidog'da sağ üst köşedeki Ortam Yönetimi alanını açın. Global parametreleri burada tanımlarsınız.
Apidog belgeleri, bu alanı isteklerle birlikte gönderilen ortak değerleri yönetmek için kullanır.
2. Başlıklar konumunu seçin
Yeni parametre eklerken Başlıklar veya İstek Başlığı konumunu seçin.
Başlığınız bir çerez, sorgu parametresi ya da gövde alanı olsaydı sırasıyla Çerezler, Sorgu veya Gövde seçeneklerini kullanırdınız. Yapılandırma mantığı aynıdır.
3. Authorization parametresini ekleyin
İlk global başlığı şu değerlerle oluşturun:
| Alan | Değer |
|---|---|
| Ad | Authorization |
| Tip | Dize |
| Varsayılan Değer | Bearer {{token}} |
| Açıklama | Tüm yetkilendirilmiş uç noktalar için Bearer jetonu |
Ardından API sürümü için ikinci parametreyi ekleyin:
| Alan | Değer |
|---|---|
| Ad | X-Api-Version |
| Tip | Dize |
| Varsayılan Değer | 2024-08-01 |
| Açıklama | Her istek için sabitlenmiş API sürümü |
4. Parametreleri etkinleştirin
Her parametrenin yanındaki etkinleştirme anahtarını açın.
Bu anahtar hata ayıklama sırasında da kullanışlıdır. Örneğin, global Authorization başlığını geçici olarak devre dışı bırakmak için parametreyi silmeniz gerekmez; anahtarı kapatmanız yeterlidir.
5. Yapılandırmayı kaydedin
Ayarları kaydedin. Artık projedeki tüm istekler, uç nokta kendi değerini tanımlamadığı sürece şu başlıkları taşır:
Authorization: Bearer {{token}}
X-Api-Version: 2024-08-01
6. Başlıkların gerçekten gönderildiğini doğrulayın
Yapılandırmanın uygulandığını varsaymayın; doğrulayın.
- Projedeki herhangi bir isteği gönderin.
- Yanıt konsolunda Gerçek İstek sekmesini açın.
- Gönderilen HTTP isteğini inceleyin.
Örnek:
GET /v1/orders/8842 HTTP/1.1
Host: api.yourservice.com
Authorization: Bearer sk_live_7f3a9c2e1b8d4056
X-Api-Version: 2024-08-01
Gerçek İstek sekmesi, değişkenler çözümlendikten sonra isteğin ağa gönderilen son hâlini gösterir. Başlıkları burada görüyorsanız, istekle birlikte gönderilmişlerdir.
Sırrı başlığa yazmayın: değişken kullanın
Authorization başlığında doğrudan jeton kullanmak yerine:
Authorization: Bearer sk_live_7f3a9c2e1b8d4056
şu yapıyı kullanın:
Authorization: Bearer {{token}}
{{token}} ifadesi bir değişkene başvurur. Böylece sır niteliğindeki değer, global parametre tanımından ayrılır.
Bearer şeması RFC 6750 içinde tanımlanır. Sunucuların Authorization başlığını nasıl işlediği için MDN Yetkilendirme başlığı referansını inceleyebilirsiniz.
token değişkenini oluşturun
- Sağ üst köşedeki ortam simgesine (
≡) tıklayın. - Global Değişkenler bölümünü açın.
-
tokenadında yeni bir değişken oluşturun. - Değişkenin değerine Bearer jetonunuzu yazın.
- Kaydet seçeneğine tıklayın.
Global parametreniz şu şekilde kalır:
Bearer {{token}}
İstek gönderildiğinde Apidog, {{token}} ifadesini aktif ortamın gerçek değeriyle değiştirir. Bu çözümlemeyi tekrar Gerçek İstek sekmesinde kontrol edebilirsiniz.
Önerilen yapı şudur:
- Global parametre: Başlığın yapısını tutar.
- Ortam değişkeni: Jeton veya API anahtarı gibi hassas değeri tutar.
Ortamlar ve sır yönetimi için API istemci ortamı ve sır yönetimi rehberine göz atabilirsiniz.
Ortama göre jeton değiştirme
Çoğu projede Geliştirme, Test ve Üretim ortamları farklı sunuculara ve farklı jetonlara ihtiyaç duyar.
Her ortam için ayrı token değerleri tanımlayın:
| Ortam |
token değeri |
|---|---|
| Development | Geliştirme jetonu |
| Test | Test jetonu |
| Production | Üretim jetonu |
Daha sonra ≡ simgesinin yanındaki Ortamlar açılır menüsünden aktif ortamı değiştirin.
Global başlık aynı kalır:
Authorization: Bearer {{token}}
Ancak {{token}} ifadesinin çözümlendiği değer aktif ortama göre değişir. Yetkilendirme türleri hakkında daha fazla bilgi için güvenlik şemaları rehberini inceleyebilirsiniz.
Başlığı yalnızca bir klasörde kullanmak
Global parametreler tüm projeyi etkiler. Ancak bazı başlıklar yalnızca belirli uç noktalar için gerekli olabilir.
Örneğin, yalnızca /admin altındaki uç noktaların şu başlığı taşımasını isteyebilirsiniz:
X-Admin-Scope: full
Apidog'da klasör ayarlarında doğrudan bir “başlık ekle” alanı bulunmaz. Bunun yerine klasör düzeyinde ön istek betiği kullanabilirsiniz.
Klasöre şu betiği ekleyin:
pm.request.headers.add({
key: 'X-Admin-Scope',
value: 'full'
});
Bu betik, ilgili klasördeki her istekten önce çalışır ve başlığı ekler. Klasör dışındaki istekler bu başlığı taşımaz.
Bu yöntem bir ayar alanı değil, betik tabanlı bir çözümdür. Bu nedenle proje geneli ihtiyaçlarda global parametreleri; klasörle sınırlı ihtiyaçlarda ön istek betiklerini kullanın.
Daha fazla örnek için Apidog'da ön istek ve sonrası istek betikleri rehberine bakabilirsiniz.
Hangi yöntemi ne zaman kullanmalısınız?
| İhtiyaç | Kullanılacak yöntem |
|---|---|
| Tüm projeye ortak başlık eklemek | Global parametre — Başlıklar |
| Jeton, API anahtarı veya ortam değeri saklamak | Ortam değişkeni |
| Başlığı yalnızca belirli bir klasörde kullanmak | Klasör düzeyinde ön istek betiği |
Örnek eşleştirme:
Authorization: Bearer {{token}}
Burada:
-
Authorizationglobal parametredir. -
{{token}}ortam değişkenidir. - Jeton ortam değiştiğinde otomatik olarak değişir.
Dikkat edilmesi gerekenler:
- Aynı ada sahip global başlıkları tekrar oluşturmayın.
- Parametre türünün kullanımınıza uygun olduğundan emin olun.
- Uç nokta düzeyindeki
Authorizationbaşlığının global değeri geçersiz kıldığını unutmayın. - Başlıkların son hâlini her zaman Gerçek İstek sekmesinden doğrulayın.
Bu özelliklerin belgelerinde belirli bir plan kısıtlaması belirtilmemektedir.
Apidog CLI ile iş akışını otomatikleştirme
Global parametreler ve ortam değişkenleri yalnızca arayüzde çalışmaz; Apidog CLI ile otomatik test koşularında da kullanılabilir.
Kaydedilmiş bir test senaryosunu belirli bir ortamla çalıştırdığınızda, CLI ilgili ortam değişkenlerini kullanır. Böylece GUI'de çalışan yapılandırmanız CI ortamında da aynı şekilde çözülür:
Authorization: Bearer {{token}}
X-Api-Version: 2024-08-01
CLI'yi kurun ve giriş yapın
Node.js v16 veya üstünü kullanarak CLI'yi yükleyin:
npm install -g apidog-cli
apidog login --with-token <ERİŞİM_JETONUNUZ>
Senaryoyu belirli bir ortamda çalıştırın
apidog run --access-token $APIDOG_ACCESS_TOKEN -t <senaryo_kimliği> -e <ortam_kimliği> -r cli
Parametreler:
-
-t: Test senaryosu kimliği -
-e: Ortam kimliği -
-r: Raporlayıcı türü (cli,htmlveyajunit)
-e bayrağı, hangi ortam değişkenlerinin kullanılacağını belirler. Bu sayede aynı senaryoyu farklı jetonlar ve sunucu adresleriyle çalıştırabilirsiniz.
Kurulum için Apidog CLI kurulum kılavuzuna, CI entegrasyonu için ise GitHub Actions'da Apidog CLI rehberine bakabilirsiniz.
Sıkça Sorulan Sorular
Global parametreler, uç noktadaki başlığı geçersiz kılar mı?
Hayır. Global parametreler, uç nokta düzeyindeki parametrelerden daha düşük önceliğe sahiptir.
Bir uç nokta kendi Authorization başlığını tanımlıyorsa, o değer kullanılır. Global parametre yalnızca uç noktanın kendi değeri olmadığı durumlarda varsayılan görevi görür.
Jetonu düz metin olarak görünmeden nerede saklamalıyım?
Ortam veya global değişken kullanın.
Global başlığı şu şekilde ayarlayın:
Authorization: Bearer {{token}}
Gerçek jetonu ise ortam simgesi (≡) üzerinden oluşturduğunuz token değişkeninde saklayın.
Bir giriş yanıtından jeton alıp değişkende saklamak için JSONPath ile değişken çıkarma rehberini kullanabilirsiniz.
Global başlığın gönderildiğini nasıl doğrularım?
Bir istek gönderin ve yanıt konsolundaki Gerçek İstek sekmesini açın.
Bu görünüm, {{token}} gibi değişkenler çözümlendikten sonra gerçek HTTP isteğini gösterir. Başlığınız burada görünüyorsa, ağa gönderilmiştir.
Başlığı tüm proje yerine yalnızca bir klasöre ekleyebilir miyim?
Evet. Ancak bunu klasör ayarlarında bir başlık alanıyla değil, klasör düzeyinde ön istek betiğiyle yaparsınız:
pm.request.headers.add({
key: 'X-Admin-Scope',
value: 'full'
});
Bu betik yalnızca bulunduğu klasördeki istekleri etkiler.
Global parametreler veya ortam değişkenleri için ücretli plan gerekli mi?
Bu özelliklerin belgelerinde katman veya plan kısıtlaması listelenmemektedir. Global parametreler, ortam değişkenleri ve klasör düzeyindeki ön istek betikleri belgelenmiş özelliklerdir.
Sonuç
Apidog'da her isteğe başlık eklemek için uç noktaları tek tek düzenlemeniz gerekmez:
- Başlığı Ortam Yönetimi altında global parametre olarak ekleyin.
- Hassas değeri
{{token}}gibi bir ortam değişkeninde saklayın. - Sonucu Gerçek İstek sekmesinden doğrulayın.
- Yalnızca belirli bir klasöre ihtiyaç varsa ön istek betiği kullanın.
Başlangıç için Apidog'u indirin ve ilk global başlığınızı yapılandırın. Ücretsizdir; kredi kartı gerekmez.
Top comments (0)