Etzel Art of Digital Manufacturing
Bize ulaşın
Lunex 1.6.0 kullanım kılavuzu

OpenAPI sözleşmesi ve destek kapsamı

Sözleşmeyi okuyun, içe ve dışa aktarın; düzenleme ve çalışma desteğini ayırın.

Bu başvuru, sözleşme biçimini ve Lunex’te çalışan kapsamı açıklar. Model tekrar kullanımı ve değişiklik etkisi için tasarım kararlarına, belirli bir ayarın etkisi için sorular ve çalışma ipuçlarına geçebilirsiniz. Bu iki sayfa soldaki OpenAPI ve tasarım başlığının altındadır.

OpenAPI, HTTP API’nizin makine tarafından da okunabilen açıklamasıdır. İstemci hangi işlemleri çağırabileceğini, hangi veriyi göndereceğini ve hangi yanıtları bekleyebileceğini bu belgeden öğrenir. Lunex’te belge aynı zamanda çalışan HTTP işlemlerinin kaynağıdır; route’lar her operation’ın iş mantığını sağlar.

Sözleşmenin bölümlerini okuyun

AlanGöreviNeyi değiştirmez?
openapiBelgenin OpenAPI standardı sürümü; örneğin 3.1.0Uygulamanın veya API’nizin ürün sürümü değildir.
info.title / info.descriptionAPI’nin adını ve amacını açıklarProje kimliğini veya çağrı adresini değiştirmez.
info.versionSizin verdiğiniz API belge/sürüm etiketiYeni URL, ayrı deployment veya sürüm yönlendirmesi oluşturmaz.
serversRuntime içinde API’nin bağıl taban yolunu belirlerKurulumun DNS adını veya HTTPS sertifikasını hazırlamaz.
pathsYolları, yöntemleri ve operation’ları içerirİş route’larını kendiliğinden oluşturmaz.
operationIdOperation’ı tanımlar ve direct:<operationId> girişine bağlarRoute ID veya dosya adı değildir.
parameters / requestBodyGirdileri ve kabul kurallarını belirtirVeriyi hedef sisteme dönüştürmez.
responsesBeklenen durumları, gövdeleri ve header’ları açıklarYanıtı üretmez ve otomatik response doğrulamasını etkinleştirmez.
componentsTekrar kullanılacak şema ve diğer tanımları tutarKullanılmayan bir component tek başına operation oluşturmaz.
securitySchemes / securityİstemcinin beklenen kimlik doğrulama biçimini açıklarDış erişim politikasını uygulamaz; API access ayrıca ayarlanır.

Örneğin info.version değerini 2.0.0 yapmak, /api/orders adresini /api/v2/orders yapmaz. Yol değişikliği gerekiyorsa servers veya paths alanını düzenleyin, route bağlarını kontrol edin ve değişikliği ilgili runtime’a uygulayın.

OpenAPI’nin alan tanımları için OpenAPI 3.1.1 belirtimi kullanılabilir. Aşağıdaki tablo, Lunex’te çalıştırabileceğiniz kapsamı açıklar.

Düzenleme, hazırlık ve çalışma farklı kontrollerdir

Form, sık kullanılan alanları görsel olarak düzenler. Source, bütün JSON belgesini gösterir. Formda ayrı kontrolü bulunmayan bir alan Source’ta tutulabilir. Ancak geçerli bir OpenAPI belgesi olması, her özelliğin Lunex runtime’ında çalıştırılabileceği anlamına gelmez.

Save belge tanılamasını ve bekleyen alan düzenlemelerini kontrol eder. Run/Reload/Build çalıştırma desteğini ve Direct bağlarını kontrol eder. Gerçek istek geldiğinde ise desteklenen request kuralları uygulanır. Örneğin bir response schema’sını düzenleyip kaydedebilirsiniz; bu, gerçek yanıtın schema’ya göre otomatik denetlendiği anlamına gelmez.

Çalıştırma desteği

KonuLunex’teki kapsamHazırlarken yapacağınız işlem
Belge biçimiProjede openapi.json; JSON OpenAPI 3.0.x / 3.1.xSwagger 2.0 veya YAML belgesini yüklemeden önce uygun JSON OpenAPI biçimine dönüştürün ve gözden geçirin.
Taban adresiservers yoksa kök yol; tek bağıl sunucu yolu, / veya /api gibiTam URL, birden çok sunucu, path/operation düzeyinde server override kullanmayın.
YöntemlerGET, POST, PUT, PATCH, DELETEHEAD, OPTIONS veya TRACE iş işlemlerini bu runtime için tanımlamayın.
Operation bağıHer benzersiz operationId için tam bir Direct consumerİsim İngilizce harf veya _ ile başlasın; devamında İngilizce harf, rakam, _, . veya - kullanın.
GirdilerPath/query/header içinde tekil string, integer, number, booleanQuery için form, path/header için simple gösterim kullanın; karmaşık veriyi JSON body’ye taşıyın.
İleri parametre biçimleriCookie, array/object parametreleri, parameter content, farklı stiller ve allowReserved desteklenmezİçe aldığınız sözleşmede bu alanları inceleyin.
Request bodyPOST/PUT/PATCH/DELETE; sözleşmede bildirilen media type’larJSON doğrulaması ile XML/metin iş doğrulamasını ayrı tasarlayın.
ReferanslarBelge içindeki çözümlenebilir yerel referanslarBaşka dosya veya URL’ye giden $ref tanımlarını belge içine toplayın.
JSON request şemalarıTürler, zorunlu alanlar, sınırlar, enum, array/object ve desteklenen birleşimlerŞema kurallarını kullanın; unsupported hatasını çalıştırmadan önce giderin.
İleri request şemalarıRecursive/boolean schema, özel dialect ve bazı ileri anahtarlar desteklenmezÇalıştırma hatasının gösterdiği tanımı sadeleştirin veya iş kontrolünü route’ta yapın.
YanıtlarKod, media type, schema, örnek ve header tanımlarıGerçek yanıtı route’ta üretin ve sözleşmeyle karşılaştırın.
Güvenlik tanımlarıSözleşmede açıklanabilirBasic/API key/JWT uygulamasını API access ile kurun.

Authorization, Content-Type ve Accept gibi taşıma/güvenlik header’larını sıradan bir özel header parametresi gibi modellemeyin. Gövde ve yanıt biçimini media type alanlarında, kimlik doğrulamayı güvenlik tanımında belirtin. Try it ilgili biçimler için ayrı alanlar sunar; gateway kimliğini yayımlanmış adreste sınayın.

Sözleşmeyi içe alın ve inceleyin

  1. JSON OpenAPI 3.0/3.1 dosyasını openapi.json adıyla hazırlayın. Dış referansları belge içine alın; örnek metinlerde geçen sıradan $ref değerlerini değiştirmeyin.
  2. Projede openapi.json yoksa Source → Files → Upload üzerinden yükleyip Save and view seçin. Dosya varsa API design → Source içinde içeriğini düzenleyin; Upload aynı adlı dosyanın üzerine yazmaz. Mevcut sözleşmenin farkını API actions → Compare with Git ile inceleyebilirsiniz.
  3. API design → Form üzerinden operation listesini kontrol edin. Hata bağlantılarını izleyerek belge ve referans sorunlarını düzeltin.
  4. servers, yöntemler, parametre biçimleri, operation ID’leri ve request şemalarını yukarıdaki çalışma desteğiyle karşılaştırın.
  5. Her operation için direct:<operationId> route’unu ekleyin. Dışarıdan alınan sözleşme bu iş mantığını içermez.
  6. Save → Run/Reload sonrasında gerçek istekleri deneyin. Başarı örneğinin yanında eksik veya geçersiz girdi de gönderin.

Bir URL’den otomatik sözleşme içe alma adımı kullanmıyorsunuz; yükleme dosya üzerinden yapılır. Başka isimli JSON dosyası projenin ana API sözleşmesinin yerini almaz.

Sözleşmeyi tüketiciye verin

Source → Files → openapi.json → Download source ile belgeyi indirin. Alıcıya hangi ortamın adresini kullanacağını, seçilen kimlik doğrulamayı, örnek çağrıyı ve beklenen sonucu da verin. Dosyadaki /api gibi bağıl server yolu, müşterinin bağlanacağı gerçek origin ve proje ön ekini tek başına belirtmez.

Belgeyi bir HTTP istemcisine veya kod üretme aracına aktardığınızda o aracın OpenAPI sürüm desteğini kontrol edin. Lunex sözleşmeyi sağlar; başka aracın ürettiği istemcinin davranışını gerçek çağrılarla doğrulayın. Örnekler ve açıklamalar paylaşılabilir gösterim verisi içermeli; Secret değerlerini sözleşmeye koymayın.

Sözleşmeyi değiştirmeden önce etkiyi görün

DeğişiklikEtkilenen kullanım
Bir path veya yöntem değişirİstemcinin çağrı adresi/yöntemi güncellenmelidir.
operationId değişirDirect girişi güncellenmelidir; aynı path’in başka iş mantığına bağlanması mümkündür.
Ortak request schema’sına zorunlu alan eklenirO schema’yı kullanan bütün işlemler artık yeni alanı bekler.
Maximum küçülür veya enum seçeneği kaldırılırDaha önce kabul edilen bazı istekler reddedilir.
Response alanı yeniden adlandırılırAlanı okuyan istemciler ve route’un gerçek çıktısı birlikte incelenmelidir.
Örnek veya açıklama değişirDokümantasyon ve Mock beklentisi değişir; route iş mantığı değişmez.
Yalnızca info.version değişirBelge etiketi değişir; ek endpoint veya ikinci çalışan sürüm oluşmaz.

Yeni sürüm tasarımınız farklı istemcileri etkileyecekse yeni yolu ve geçişi açıkça planlayın. Bir sürüm etiketi yazmak bunları otomatik yönetmez. Değişiklikleri önce çalışan örnekte, sonra ilgili yayınlama adımlarıyla doğrulayın.

Lunex’i kendi entegrasyonunuzla görün

Kılavuzda okuduklarınızı kendi sistemlerinizle deneyelim. Demo için bize yazın.