Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
OpenAPI belirtimi, HTTP API'lerini belgelemede dil açısından bağımsız bir standarttır. Veri API'si oluşturucusu OpenAPI'i şu şekilde destekler:
- Çalışma zamanı yapılandırmasında tanımlanan tüm REST özellikli varlıklar için meta veriler oluşturma
- Bu meta verileri geçerli bir OpenAPI şemasına derleme
- Şemayı görsel kullanıcı arabirimi (Swagger) aracılığıyla veya serileştirilmiş JSON dosyası olarak ortaya çıkarma
- Şemayı yalnızca belirli bir rol için erişilebilen HTTP yöntemlerini ve alanlarını gösterecek şekilde filtreleme
OpenAPI açıklama belgesi
Veri API'si oluşturucusu, rest özellikli her varlık için çalışma zamanı yapılandırmasını ve veritabanı meta verilerini kullanarak bir OpenAPI açıklama belgesi oluşturur.
Şema , OpenAPI.NET SDK kullanılarak oluşturulur ve OpenAPI Belirtimi v3.0.1'e uygundur. JSON belgesi olarak çıktı olarak sunulur.
OpenAPI belgesine şu konumdan erişebilirsiniz:
GET /{rest-path}/openapi
Uyarı
Varsayılan olarak , rest-path şeklindedir api. Bu değer yapılandırılabilir. Ayrıntılar için bkz. REST yapılandırması .
İzin kullanan OpenAPI
DAB 2.0'dan başlayarak, OpenAPI belgesi her varlık için yapılandırılan gerçek izinleri yansıtır. Oluşturulan şema, mümkün olan her HTTP yöntemini belgeleme yerine yalnızca belirli bir rolün erişebileceği yöntemleri ve alanları gösterir.
İzinler HTTP yöntemleriyle nasıl haritalanır?
DAB, OpenAPI belgesindeki varlık izinlerini HTTP yöntemi görünürlüğüne çevirir:
| İzin işlemi | Gösterilen HTTP yöntemleri |
|---|---|
read |
GET |
create |
POST |
create + update |
PUT, PATCH |
delete |
DELETE |
Örneğin, anonymous rolü Book varlık üzerinde yalnızca read iznine sahipse, anonim rol için OpenAPI belgesi /api/Book üzerinde yalnızca GET işlemleri gösterir.
POST, PUT, PATCHve DELETE işlemleri tamamen atlanır.
Alan düzeyinde filtreleme
İzinler alan düzeyi include veya exclude kurallar içerdiğinde, OpenAPI şeması bu kısıtlamaları yansıtır. İstek ve yanıt şemalarında yalnızca rol tarafından erişilebilen alanlar görüntülenir. Bu filtreleme, tüketicilere API'nin rolleri için neleri kabul edip döndürdüğüne ilişkin doğru bir resim sağlar.
Rol-özgü OpenAPI yolları
DAB, yapılandırılmış herhangi bir rol için şemayı inceleyebilmeniz için role özgü OpenAPI uç noktaları sağlar:
GET /{rest-path}/openapi
GET /{rest-path}/openapi/anonymous
GET /{rest-path}/openapi/authenticated
GET /{rest-path}/openapi/admin
Temel /openapi yol varsayılan anonim görünümü döndürür. Role özgü her yol, bu rolün izinlerine göre filtrelenmiş bir şema döndürür.
Önemli
Role özgü OpenAPI yolları (/openapi/{role}) yalnızca Geliştirme modunda kullanılabilir. Üretim modunda, rol numaralandırmasını önlemek için bu uç noktalar devre dışı bırakılır. Üretim modunda yalnızca temel /openapi yol kullanılabilir.
Uyarı
Role özgü bir uç noktası, rolün çalışma zamanı yapılandırmasının hiçbir yerinde yapılandırılmış varlık izinleri yoksa 404 Not Found döndürür. Yalnızca en az bir varlıkta en az bir permissions girişi bulunan roller OpenAPI belgesi oluşturur.
Example
Şu izin yapılandırmasını göz önünde bulundurun:
{
"entities": {
"Book": {
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "read",
"fields": { "include": ["id", "title", "year"] }
}
]
},
{
"role": "authenticated",
"actions": ["create", "read", "update", "delete"]
}
]
}
}
}
Bu yapılandırmayla:
-
/api/openapi/anonymousyalnızcaGET /api/Bookyanıt alanlarıid,titleveyearile gösterilir. -
/api/openapi/authenticatedGET,POST,PUT,PATCHveDELETEişlemlerini/api/Booktüm alanlarıyla gösterir.
Swagger Kullanıcı Arabirimi
Swagger kullanıcı arabirimi , OpenAPI şemasına göre API'nin etkileşimli, web tabanlı bir görünümünü sağlar.
Modda Development , Veri API oluşturucusu Swagger kullanıcı arabirimini şu konumda kullanıma sunar:
GET /swagger
Bu uç nokta, kullanıcı tanımlı varlıklarla çakışmaları önlemek için rest-path öğesinin altında iç içe değildir.