Novidades no ASP.NET Web API OData 5.3
pela Microsoft
Este tópico descreve as novidades do ASP.NET Web API OData 5.3.
- Download
- Documentação
- Bibliotecas principais do OData
- Novos recursos
- Problemas conhecidos e alterações interruptivas
- Correções de bug
- ASP.NET Web API OData 5.3.1
Baixar
Os recursos de runtime são lançados como pacotes NuGet na galeria do NuGet. Você pode instalar ou atualizar para os pacotes NuGet lançados usando o Console do Gerenciador de Pacotes NuGet:
Install-Package Microsoft.AspNet.OData -Version 5.3.0
Install-Package Microsoft.AspNet.WebApi.OData -Version 5.3.0
Documentação
Você pode encontrar tutoriais e outras documentações sobre ASP.NET Web API OData no site do ASP.NET.
Bibliotecas principais do OData
Para o OData v4, a API Web agora usa o ODataLib versão 6.5.0
Novos recursos no ASP.NET Web API OData 5.3
Suporte para $levels no $expand
Você pode usar a opção de consulta $levels em consultas $expand. Por exemplo:
http://example.com/Employees?$expand=Manager($levels=2)
Essa consulta é equivalente a:
http://example.com/Employees?$expand=Manager($expand=Manager))
Suporte para tipos de entidade aberta
Um tipo aberto é um tipo estruturado que contém propriedades dinâmicas, além de quaisquer propriedades declaradas na definição de tipo. Os tipos abertos permitem que você adicione flexibilidade aos seus modelos de dados. Para obter mais informações, consulte xxxx.
Suporte para propriedades de coleção dinâmica em tipos abertos
Anteriormente, uma propriedade dinâmica precisava ser um único valor. Na versão 5.3, as propriedades dinâmicas podem ter valores de coleção. Por exemplo, no seguinte conteúdo JSON, a Emails
propriedade é uma propriedade dinâmica e é de coleção de tipo de cadeia de caracteres:
{
"Id": 1,
"Name": "Ben",
"Emails@odata.type": "#Collection(Edm.String)",
"Emails": [
"a@a.com",
"b@b.com"
]
}
Suporte para herança para tipos complexos
Agora, tipos complexos podem herdar de um tipo base. Por exemplo, um serviço OData pode definir os seguintes tipos complexos:
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>();
}
}
Aqui está o EDM para este exemplo:
<?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>
Para obter mais informações, consulte Exemplo de herança de tipo complexo OData.
Problemas conhecidos e alterações interruptivas
Esta seção descreve problemas conhecidos e alterações interruptivas no ASP.NET Web API OData 5.3.
OData v4
Opções de consulta
Problema: usar $expand aninhados com $levels=max resulta em uma profundidade de expansão incorreta.
Por exemplo, dada a seguinte solicitação:
~/Entities(6)?$expand=P($levels=2;$expand=D($levels=max))
Se MaxExpansionDepth
for 5, essa consulta resultará em uma profundidade de expansão de 6.
Correções de bugs e Atualizações de recursos secundários
Esta versão também inclui várias correções de bugs e atualizações secundárias de recursos.
ASP.NET Web API OData 5.3.1
Nesta versão, fizemos uma correção de bug em algumas das enumerações AllowedFunctions. Esta versão não tem nenhuma outra correção de bug ou novos recursos.