ASP.NET Web API'sindeki Yenilikler OData 5.3
Microsoft tarafından
Bu konu başlığında ASP.NET Web API OData 5.3'e yönelik yenilikler açıklanmaktadır.
- İndir
- Belgeler
- OData Core Kitaplıkları
- Yeni Özellikler
- Bilinen Sorunlar ve Hataya Neden Olan Değişiklikler
- Hata Düzeltmeleri
- web API'sini ASP.NET OData 5.3.1
İndir
Çalışma zamanı özellikleri NuGet galerisinde NuGet paketleri olarak yayınlanmaktadır. NuGet Paket Yöneticisi Konsolu'nu kullanarak yayımlanan NuGet paketlerini yükleyebilir veya güncelleştirebilirsiniz:
Install-Package Microsoft.AspNet.OData -Version 5.3.0
Install-Package Microsoft.AspNet.WebApi.OData -Version 5.3.0
Belgeler
ASP.NET Web API OData ile ilgili öğreticileri ve diğer belgeleri ASP.NET web sitesinde bulabilirsiniz.
OData Core Kitaplıkları
OData v4 için Web API'sinde artık ODataLib sürüm 6.5.0 kullanılıyor
ASP.NET Web API'sindeki Yeni Özellikler OData 5.3
$expand'da $levels desteği
sorgularda $levels sorgu seçeneğini $expand kullanabilirsiniz. Örnek:
http://example.com/Employees?$expand=Manager($levels=2)
Bu sorgu şuna eşdeğerdir:
http://example.com/Employees?$expand=Manager($expand=Manager))
Açık Varlık Türleri desteği
Açık tür, tür tanımında bildirilen özelliklere ek olarak dinamik özellikler içeren yapılandırılmış bir türdür. Açık türler, veri modellerinize esneklik eklemenize olanak tanır. Daha fazla bilgi için bkz. xxxx.
Açık türlerdeki dinamik koleksiyon özellikleri desteği
Daha önce dinamik özelliğin tek bir değer olması gerekiyordu. 5.3'te dinamik özelliklerin koleksiyon değerleri olabilir. Örneğin, aşağıdaki JSON yükünde Emails
özelliği dinamik bir özelliktir ve dize türünde bir koleksiyondur:
{
"Id": 1,
"Name": "Ben",
"Emails@odata.type": "#Collection(Edm.String)",
"Emails": [
"a@a.com",
"b@b.com"
]
}
Karmaşık türler için devralma desteği
Artık karmaşık türler bir temel türden devralabilir. Örneğin, bir OData hizmeti aşağıdaki karmaşık türleri tanımlayabilir:
public abstract class Shape
{
public bool HasBorder { get; set; }
}
public class Point
{
public int X { get; set; }
public int Y { get; set; }
}
public class Circle : Shape
{
public Point Center { get; set; }
public int Radius { get; set; }
public override string ToString()
{
return "{" + Center.X + "," + Center.Y + "," + Radius + "}";
}
}
public class Polygon : Shape
{
public IList<Point> Vertexes { get; set; }
public Polygon()
{
Vertexes = new List<Point>();
}
}
Bu örneğin EDM'sini aşağıda bulabilirsiniz:
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:DataServices>
<Schema Namespace="ODataComplexTypeInheritanceSample" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<ComplexType Name="Shape" Abstract="true">
<Property Name="HasBorder" Type="Edm.Boolean" Nullable="false" />
</ComplexType>
<ComplexType Name="Polygon" BaseType="ODataComplexTypeInheritanceSample.Shape">
<Property Name="Vertexes" Type="Collection(ODataComplexTypeInheritanceSample.Point)" />
</ComplexType>
<ComplexType Name="Point">
<Property Name="X" Type="Edm.Int32" Nullable="false" />
<Property Name="Y" Type="Edm.Int32" Nullable="false" />
</ComplexType>
<ComplexType Name="Circle" BaseType="ODataComplexTypeInheritanceSample.Shape">
<Property Name="Center" Type="ODataComplexTypeInheritanceSample.Point" />
<Property Name="Radius" Type="Edm.Int32" Nullable="false" />
</ComplexType>
<EntityContainer Name="Container">
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
Daha fazla bilgi için bkz. OData Karmaşık Tür Devralma Örneği.
Bilinen Sorunlar ve Hataya Neden Olan Değişiklikler
Bu bölümde, ASP.NET Web API OData 5.3'teki bilinen sorunlar ve hataya neden olan değişiklikler açıklanmaktadır.
OData v4
Sorgu Seçenekleri
Sorun: $levels=max ile iç içe $expand kullanılması yanlış genişletme derinliğine neden olur.
Örneğin, aşağıdaki istek göz önünde bulundurulduğunda:
~/Entities(6)?$expand=P($levels=2;$expand=D($levels=max))
5 ise MaxExpansionDepth
, bu sorgu 6 genişletme derinliğine neden olur.
Hata Düzeltmeleri ve İkincil Özellik Güncelleştirmeler
Bu sürüm çeşitli hata düzeltmeleri ve küçük özellik güncelleştirmeleri de içerir.
web API'sini ASP.NET OData 5.3.1
Bu sürümde bazı AllowedFunctions sabit listelerinde bir hata düzeltmesi yaptık. Bu sürümde başka hata düzeltmeleri veya yeni özellikler yoktur.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin