OpenAPI ekip işbirliği, spesifikasyonunuz Git'e taşındığı anda bozulur. Git'in spesifikasyonlar için yanlış olduğu için değil, doğru yer olduğu için; ancak Git'in inceleme araçları, API tasarımına katılması gereken QA, ön uç veya ürün yöneticileri için değil, kodu inceleyen mühendisler için oluşturulduğu için.
Ekibiniz zaten dosya tabanlı bir yaklaşım benimsediyse (OpenAPI spesifikasyonlarını bir depoda YAML veya JSON olarak depoluyorsa), muhtemelen bu duvara çarpmışsınızdır: spesifikasyon sürüm kontrollü ve incelenebilir durumda, ancak mühendis olmayanlar hala bir tarayıcıda Stoplight önizlemesini inceliyor, Slack DM'leri üzerinden sorular soruyor ve herhangi bir şeyi test etmeden önce geliştiricilerin dosyayı güncellemesini bekliyor. api-spec-as-code gönderisi, Git'in neden doğru bilgi kaynağı olduğunu ele alıyor. Bu gönderi, oraya ulaştıktan sonra kalan işbirliği boşluğunu ve Apidog gibi araçların spesifikasyonunuzu Git'ten çıkarmadan bu boşluğu nasıl kapattığını açıklıyor.
Git'in tek başına kapatamadığı boşluk
Git, değişiklik geçmişini, dallanmayı ve çekme isteği farklarını yönetir. Bunlar mühendisler için güçlü temel unsurlardır. Ancak, tüm ekibiniz paylaşılan bir spesifikasyon üzerinden çalışmaya başladığında ortaya çıkan bazı işbirliği ihtiyaçlarını karşılamazlar.
Mühendis olmayanlardan tasarım aşaması yorumları. Bir PR farkında tutarsız bir hata şeması fark eden bir QA mühendisi, openapi.yaml'ın 247. satırına dişli bir soruyla kolayca not ekleyemez. GitHub'ın PR arayüzü kod inceleyiciler için çalışır; spesifikasyonu kaynak kod olarak değil, belge olarak okuyan paydaşlar için daha az doğaldır.
Mevcut dala bağlı canlı mock'lar. Ön uç geliştiricileri, arka uç uygulaması tamamlanmadan önce genellikle çalışan bir mock sunucusuna ihtiyaç duyarlar. Git'teki ham bir YAML dosyasıyla, bu mock'u oluşturmak ayrı bir araç veya manuel bir adım gerektirir. Dosya otomatik olarak çalıştırılabilir bir yapıt değildir.
Role göre bildirim yönlendirme. Bir arka uç ekibi paylaşılan bir spesifikasyona bozucu bir değişiklik birleştirdiğinde, alt akış ekiplerinin (ön uç, mobil, QA) bunu bilmesi gerekir. Git webhook'ları bir Slack kanalını bilgilendirebilir, ancak bunlar genel "dosya değişti" sinyalleri iletir. "/payments uç noktası yanıtı değişti; işte etkilenen tüketiciler" diyen rol tabanlı bildirimler, üzerine bir katman gerektirir.
Belgelendirme için erişim kontrolü. Genel bir GitHub deposundaki bir spesifikasyon herkes tarafından okunabilir. Özel depolar bunu çözer, ancak harici bir iş ortağının uç nokta belgelerini okuyabildiği ancak dahili yönetici API'sini okuyamadığı hedef kitle düzeyinde erişim kontrolü, Git'in doğal olarak sağladığı bir şey değildir.
Bu dört boşluk, Git'e karşı argümanlar değildir. Git'i bir işbirliği katmanına bağlama argümanlarıdır.
Bir işbirliği katmanının ne yaptığı (ve ne yapmadığı)
Burada yardımcı olan çerçeve şudur: Git, doğruluk kaynağı olarak kalır; işbirliği katmanı ise o dosyayı belgelere, mock'lara, incelemelere, bildirimlere ve CI/CD raporlarına bağlayan şeydir.
Bu alandaki araçlar kabaca iki kategoriye ayrılır:
| Kategori | Örnekler | Güçlü Yönler | Git'in Üzerine Ekledikleri |
|---|---|---|---|
| Barındırılan spesifikasyon platformları | Stoplight, SwaggerHub | Cilalı kullanıcı arayüzü, yorumlar, erişim kontrolü | Spesifikasyonun kendi kopyalarını tutarlar; Git isteğe bağlıdır |
| Dosya tabanlı işbirliği katmanları | Apidog (Spec-First Modu, beta), Redocly | Kaydedilmiş dosyanızdan çalışır; Git yetkili olarak kalır | Dosyanın üzerine işbirliği, mock'lar ve CI katmanı ekler |
| Git yerel API istemcileri | Bruno, Insomnia | Mükemmel dosya senkronizasyonu, kod olarak koleksiyonlar | İstek katmanında durur; belgeler/mock'lar/raporlar otomatik olarak bağlı değildir |
Bu tabloyu anlamak yaygın bir hatayı önler: bir özelliğe dayanarak bir araç seçmek ve ardından başka bir boyutta zayıf olduğunu keşfetmek.
Bruno’nun Git yönetimi güçlüdür ve istek katmanında durur
İş akışınızı Bruno etrafında tasarlamadan önce Bruno dürüst bir açıklamayı hak ediyor. Özellikle Bruno Ultimate, dosya tabanlı koleksiyon depolaması, güçlü Git entegrasyonu, SSO, SCIM, sır yöneticisi kancaları ve denetim günlüğü özelliklerine sahiptir. Temel ihtiyacınız ayrı olarak yönettiğiniz bir spesifikasyona karşı istekleri yürütmekse, Bruno’nun Git hikayesi gerçekten sağlamdır.
Bruno'nun durduğu yer istek katmanıdır. Kaydedilmiş bir OpenAPI dosyasından API belgelerini otomatik olarak oluşturmaz, o dosyadan dal farkındalıklı mock sunucuları üretmez ve bir spesifikasyon yolu değiştiğinde role özel bildirimleri yönlendirmez. Bu şeyler ya ayrı bir barındırılan araç ya da dosya tabanlı depolamayı işbirliği özellikleriyle birleştiren bir platform gerektirir.
Entegrasyon yükü gerçektir. Bruno'yu, belgeler ve mock sunucuları için zaten Stoplight kullanan bir ekip için değerlendiriyorsanız, Stoplight'ı değiştirmemiş olursunuz; Bruno'yu yanına eklemiş olursunuz. Bu doğru bir karar olabilir, ancak mimari konusunda açık olmakta fayda var.
Apidog Spec-First Modu boşluğu nasıl kapatıyor
Apidog'un Spec-First Modu (şu anda beta sürümünde), tam olarak bu mimari için tasarlanmıştır. Git'e bir openapi.yaml dosyası kaydedersiniz; Apidog bu dosyayı yetkili kaynak olarak okur ve spesifikasyonu kendi veritabanına çatallamadan üzerine işbirliği özellikleri katmanı ekler.

İş akışı pratikte şöyle görünür.
Adım 1: Git deponuzu bağlayın
Apidog'da bir projeyi bir GitHub, GitLab veya Bitbucket deposuna bağlar ve OpenAPI dosya yolunu gösterirsiniz. apidog-git-integration-sync rehberi bağlantı adımlarını ayrıntılı olarak açıklar.
# openapi.yaml (committed in your repo at api/openapi.yaml)
openapi: "3.1.0"
info:
title: Payments API
version: "2.4.0"
paths:
/payments:
post:
summary: Create a payment
operationId: createPayment
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/PaymentRequest"
responses:
"201":
description: Payment created
content:
application/json:
schema:
$ref: "#/components/schemas/PaymentResponse"
"422":
description: Validation error
content:
application/json:
schema:
$ref: "#/components/schemas/ValidationError"
components:
schemas:
PaymentRequest:
type: object
required: [amount, currency, source]
properties:
amount:
type: integer
description: Amount in smallest currency unit (e.g., cents)
currency:
type: string
enum: [usd, eur, gbp]
source:
type: string
description: Payment method token
PaymentResponse:
type: object
properties:
id:
type: string
status:
type: string
enum: [pending, completed, failed]
ValidationError:
type: object
properties:
code:
type: string
message:
type: string
Adım 2: Farktan değil, spesifikasyondan inceleyin ve yorum yapın
Bağlandıktan sonra Apidog, spesifikasyonu etkileşimli belge olarak oluşturur. Ekip üyeleri doğrudan uç noktalara, şemalara ve yanıt örneklerine yorum ekleyebilir. POST /payments yolunu inceleyen bir QA mühendisi, YAML dosyasına dokunmadan veya taahhüt erişimi olan bir GitHub hesabına ihtiyaç duymadan eksik idempotency-key başlığını işaretleyebilir.

Yorumlar dişli ve çözümlenebilir. Mühendis openapi.yaml dosyasını güncelleyip yeni bir commit gönderdiğinde, bağlı Apidog projesi değişikliği yansıtır. Konuşma satır numarasına değil, spesifikasyon öğesine bağlı kalır.
Adım 3: Dala özel mock'ları otomatik olarak oluşturun
Spec-First Modu ile, spesifikasyonunuzun her dalı ayrı bir mock sunucusu üretebilir. feature/payment-v2 dalına karşı çalışan bir ön uç geliştiricisi, o daldaki yeni şemayı yansıtan bir mock URL'si alır. Üretim mock URL'si sabit kalır.

Bu, hiç kimsenin manuel olarak npx @stoplight/prism-cli mock openapi.yaml çalıştırmasına gerek kalmadan "arka ucu bekleme" sorununu ortadan kaldırır.
Adım 4: Bildirimleri doğru ekiplere yönlendirin
Spesifikasyondaki bir yol veya şema değiştiğinde (birleştirme üzerine), Apidog yapılandırılmış kanallara bildirim gönderebilir. /payments değişiklik olaylarını ön uç ve mobil ekiplerin abone olduğu bir Slack kanalına yönlendirirsiniz. /admin değişiklik olaylarını ayrı bir dahili kanala yönlendirirsiniz.
Slack ve Teams kurulumu için, bu platformlardaki webhook yapılandırması için Slack gelen webhook'larına ve Microsoft Teams gelen webhook'larına bakın. Apidog'un bildirim ayarları, bu kanalları uç nokta etiketine veya yol ön ekine göre bağlamanıza olanak tanır.
Denemede doğrulanmaya değer: bildirim yönlendirmenin ayrıntı düzeyi (etiket başına vs. yol başına) ve belge hedef kitleleri için erişim kontrolünün kuruluşunuzun rol yapısına nasıl eşlendiği. Bunlar, özel gereksinimlerinize göre değerlendirmeniz gereken yeteneklerdir.
İşbirliği katmanını CI/CD'ye bağlama
İşbirliği katmanı, yalnızca ekibinizin sohbet araçlarına değil, boru hattınıza da bağlandığında en faydalıdır. Apidog'un CLI'sı, kaydedilmiş spesifikasyona karşı sözleşme testlerini bir CI adımı olarak çalıştırmanıza olanak tanır. Spectral veya spesifikasyon doğrulaması için Redocly CLI gibi bir linter ile birleştiğinde, spesifikasyon kalitesini zorlayan ve işbirliği bağlamını birlikte ortaya çıkaran bir boru hattı elde edersiniz.
# .github/workflows/api-spec.yml
name: API spec validation and test
on: [push, pull_request]
jobs:
validate-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate OpenAPI spec (Spectral)
run: |
npm install -g @stoplight/spectral-cli
spectral lint api/openapi.yaml --ruleset .spectral.yaml
- name: Run Apidog contract tests
env:
APIDOG_TOKEN: ${{ secrets.APIDOG_TOKEN }}
run: |
npx apidog-cli run \
--project-id ${{ vars.APIDOG_PROJECT_ID }} \
--test-suite "Payments API smoke" \
--environment staging
OpenAPI spesifikasyonu, API'nizin ne vaat ettiğinin temel referansıdır. Kaydedilmiş dosyaya karşı sözleşme testleri çalıştırmak, CI boru hattınızın yalnızca birim testleri geçtiğinde değil, çalışan hizmetin spesifikasyondan saptığında da başarısız olması anlamına gelir.
Bu uyum sağladığı Git-yerel iş akışı modeline daha derinlemesine bir bakış için, git-native-api-workflow, bu boru hattının uçtan uca nasıl inşa edileceğini gösterir.
Dosya tabanlı ekipler için ana seçenekleri karşılaştırma
Bunu okuduktan sonra araçları değerlendiriyorsanız, dosya tabanlı işbirliği için önemli olan boyutlarda doğrudan bir karşılaştırma aşağıdadır. Soru işaretiyle işaretlenmiş yeteneklerin kendi denemenizde doğrulanması değerlidir; plan katmanına ve yapılandırmaya göre değişirler.
| Yetenek | Stoplight | SwaggerHub | Apidog (Spec-First, beta) |
|---|---|---|---|
| Yetkili kaynak olarak Git | İsteğe bağlı (varsayılan olarak kendi kopyası) | İsteğe bağlı | Evet (Spec-First Modu) |
| Tasarım aşaması yorumları | Evet | Evet | Evet |
| Dala özel mock'lar | Evet | Kısmi | Evet |
| Role dayalı belge erişimi | Evet | Evet | Denemede kontrol edin |
| Projeler arası şema yeniden kullanımı | Evet | Evet | Denemede kontrol edin |
| CI/CD sözleşme testi | Prism aracılığıyla | Sınırlı | Evet (Apidog CLI) |
| Özel lint kuralları | Spectral aracılığıyla | Sınırlı | Denemede kontrol edin |
| SSO/SCIM | Ücretli katmanlar | Kurumsal | Denemede kontrol edin |
| Bildirim yönlendirme | Webhook'lar aracılığıyla | Sınırlı | Evet |
| Dosya tabanlı (çift kopya yok) | Hayır | Hayır | Evet (Spec-First) |
SwaggerHub'ı içeren daha geniş bir karşılaştırma için, swaggerhub-vs-apidog-collaboration bölümüne bakın.
Sıkça Sorulan Sorular
Git PR incelemelerini Apidog yorumlarıyla birlikte kullanmaya devam edebilir miyiz?
Evet. İki akış farklı kitlelere hizmet eder. Git PR incelemeleri, YAML değişikliğini inceleyen mühendisler içindir; Apidog yorumları ise spesifikasyonu belge olarak inceleyen ürün, QA ve ön uç paydaşları içindir. Her ikisi de çakışmadan paralel olarak çalışabilir. Kaydedilmiş dosya, her ikisi için de tek doğruluk kaynağı olarak kalır.
Biri spesifikasyonu dosya yerine Apidog'da düzenlerse ne olur?
Spec-First Modu'nda, Apidog arayüzü aracılığıyla yapılan düzenlemeler, Git'e commit olarak geri gönderilebilir. Akış şöyledir: kullanıcı arayüzünde düzenle, dala commit et, Git'te PR incele, birleştir. Bu, denemenizde doğrulanmaya değerdir çünkü tam senkronizasyon yönü (Apidog'dan Git'e vs. Git'ten Apidog'a) ekibinizin düzenlemelerin nereden kaynaklandığına nasıl karar verdiğini etkiler. Spec-First Modu'nun adım adım incelemesi için, spec-first-mode-apidog-beta-walkthrough bölümüne bakın.
Spec-First Modu, birden fazla OpenAPI dosyası olan monorepolarda çalışır mı?
Proje başına birden fazla spesifikasyon dosyası, yaygın bir monorepo modelidir. Apidog, her biri farklı bir dosya yoluna bağlı birden fazla projeyi destekler. Tek bir Apidog projesinin birden fazla spesifikasyon dosyasına eşlenip eşlenemeyeceği veya özel lint kurallarının bu projeler arasında paylaşılıp paylaşılamayacağı, özel depo düzeninize karşı bir denemede test edilmeye değerdir.
Bu, dosya tabanlı ekipler için Redocly ile nasıl karşılaştırılır?
Redocly CLI, spesifikasyon linting, paketleme ve dosyalardan belge oluşturma konularında güçlüdür. Redocly'nin barındırılan platformu, inceleme ve ekip özelliklerini ekler. Fark, Stoplight karşılaştırmasına benzer: Redocly'nin işbirliği katmanı ücretli planlarda mevcuttur. Apidog'un farkı, kaydedilmiş dosyanızdan okuyan tek bir platformda mock'lar, sözleşme testi, bildirimler ve belgelerin birleşik kapsama alanıdır.
OpenAPI Girişimi'nin kendi araçları hakkında ne dersiniz?
OpenAPI Girişimi spesifikasyonun kendisini yayınlar; bir işbirliği platformu yayınlamaz. Seçim yaptığınız şey, spesifikasyonu uygulayan araç ekosistemidir. Bu gönderide "OpenAPI'yi desteklediğini" iddia eden herhangi bir araç, spesifikasyon sürümünüz 3.1 ise OpenAPI 3.1'e karşı test edilmelidir, çünkü 3.1 desteği farklılık gösterir.
Sonuç
Ekibiniz zaten OpenAPI spesifikasyonlarını Git'te depoluyorsa, dosya yönetimi sorunu çözülmüştür. İşbirliği sorunu ise çözülmemiştir. Mühendis olmayanlardan gelen tasarım aşaması yorumları, ön uç için dala özel mock'lar, bozucu değişikliklere yönelik role özel bildirimler ve erişim kontrollü belgeler, tüm bunlar kaydedilmiş dosyanızı ekibin geri kalanının iş akışına bağlayan bir katman gerektirir.
Bu katmanın Git'in yerini alması gerekmez. Git'ten okumalı, üzerine inşa etmeli ve mühendisler PR'larda kod incelemesi yaparken yolundan çekilmelidir.
Mevcut kurulumunuzda Git sürümlemeyi hallederken Stoplight veya paylaşılan bir belge işbirliğini sağlıyorsa, Apidog Spec-First Modu'nun birleştirmek üzere tasarlandığı mimari tam da budur. Hala beta aşamasında olduğu için, taahhütte bulunmadan önce ekibinizin en çok ihtiyaç duyduğu yeteneklere (belge erişim kontrolü, projeler arası şema yeniden kullanımı, bildirim ayrıntı düzeyi) karşı odaklanmış bir deneme yapın. Apidog'u indirin ve mevcut spesifikasyon deponuzun bir dalına bağlayarak işbirliği katmanının ekibinizin halihazırda sahip olduğu iş akışına nasıl uyduğunu görün.
