# OpenAPI Belirtimi 3.0 desteği

API Sözleşmeleri kullanarak OpenAPI Belirtimi (OAS) 3.0 ile bir API tasarlayın.

OpenAPI Specification 3.0, API tasarımcılarına daha fazla ifade gücü ve üretkenlik kazandıran yeni özelliklerle birlikte gelir.

OpenAPI hakkında daha fazla bilgi için [Swagger dokümantasyonuna](https://swagger.io/docs/specification/about/) bakın.

## Bileşenler

Bileşenler, bir API genelinde çeşitli öğeleri yeniden kullanmanıza olanak tanır. Bu öğeler şunlar olabilir:

* Yol değişkenleri
* Sorgu Parametreleri
* Üst bilgiler
* Yanıtlar

## Kombinasyonlar

Kombinasyonlar, diğer birkaç veri türünü birleştirerek yeni bir veri türü oluşturmanıza olanak tanır. API Sözleşmeleri iki tür kombinasyonu destekler:

* Bileşim (allOf), farklı şemalardan şema özelliklerini bir araya getirmenize olanak tanır. Örneğin, mevcut Contact ve Error türlerindeki tüm özellikleri yeniden kullanarak bir Company veri türü tanımlayabilirsiniz. ![Bir kompozisyon örneği.](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Resources/Images/ApiDesigner/all_of.png)
* Polimorfizm (oneOf/anyOf), farklı veri türlerinin özelliklerini kullanabilen bir varlık oluşturmanıza olanak tanır.
  * oneOf seçilen türlerden birinin özelliklerini içeren bir veri türü tanımlamanıza olanak tanır. Örneğin, bir hizmet hesabı hakkında bilgi almak için bir işlem oluşturursanız, ya Error öğesinin tüm özelliklerini ya da ServiceAccountCount öğesinin tüm özelliklerini almak için oneOf kombinasyonunu kullanarak yanıtı tanımlayabilirsiniz. ![Bir polimorfizm örneği.](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Resources/Images/ApiDesigner/oneof.png)

  * anyOf, seçilen türlerden birinin veya birkaçının özelliklerini içeren bir veri türü tanımlamanıza olanak tanır. Örneğin, farklı özellikler içeren bir nervousSystem veri türü ile bir skeleton türü tanımlayabilir ve bu türlerin herhangi birindeki özellikleri içeren bir veri türü oluşturmak için anyOf kombinasyonunu kullanabilirsiniz.

    Bir anyOf kombinasyonu, seçilen veri türlerinden en az birinin gerekli tüm parametrelerini içerdiği sürece geçerlidir. Aşağıdaki örnek, nervousSystem türündeki brain\_weight özelliğini ve skeleton içindeki skull\_height ve teeth özelliklerini kullanır.

    ![nervousSystem ve skeleton veri türlerini kullanan bir kombinasyon örneği.](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Resources/Images/ApiDesigner/anyof.png)

Bileşim ve çok biçimlilik hakkında daha fazla bilgi için [Kalıtım ve Çok Biçimlilik](https://swagger.io/docs/specification/data-models/inheritance-and-polymorphism/) ve [anyOf ile oneOf Arasındaki Fark](https://swagger.io/docs/specification/data-models/oneof-anyof-allof-not/#anyof-vs-oneof) bölümlerine bakın.

## Yanıtlar

OAS 3.0, işlemleriniz için yeni yanıt türleri tanımlamanıza olanak tanır:

* Yanıt aralıkları: 200 gibi bir yanıt tanımlamak yerine bunu 2XX olarak ayarlayabilirsiniz, böylece 200 ile 299 arasındaki yanıtları kapsar.
* Varsayılan yanıtlar: Belirli bir yanıt veya aralık yanıtı tanımlanmadığında döndürülecek varsayılan bir yanıt tanımlayabilirsiniz.

Açık bir kodla tanımlanan yanıtlar, yanıt aralıklarına ve varsayılan yanıtlara göre önceliklidir ve yanıt aralıkları da varsayılan yanıtlara göre öncelik taşır. Aşağıdaki örnekte:

* 204 yanıtı tanımlanmıştır ve diğerlerine göre önceliklidir.
* 2XX yanıtı, 200 ila 203 ve 205 ila 299 arasındaki yanıt kodları için geçerlidir.
* Varsayılan yanıt, tüm 1XX, 3XX, 4XX ve 5XX yanıtları için geçerlidir.

![Yanıtlar bölümü.](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Resources/Images/ApiDesigner/responses-headers-api.png)

## Güvenlik

OAS 3.0, API'niz için yeni güvenlik şemaları getirir:

* Bearer kimlik doğrulaması
* OpenIdConnect

## Kısıtlamalar

OAS 3.0, bazı özelliklerin salt okunur veya salt yazılır olduğunu belirtmenize olanak tanır.

Bu seçenek yalnızca veri türlerinde kullanılabilir ve işlem düzeyindeki istek veya yanıtlarda tanımlanamaz.

![Kısıtlama örneği.](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Resources/Images/ApiDesigner/designer_restrictions.png)