ASP.NET CORE MVC FORMURTES PARA INPUTAÇÃO E SATIMENTO DE PROTOBUF.
Os buffers de protocolo são o mecanismo de idioma, neutro de plataforma, neutra e em termos de plataforma do Google, para serializar dados estruturados-pense em XML, mas menor, mais rápido e mais simples.
A negociação de conteúdo ocorre quando o cliente especifica um cabeçalho Accept . O formato padrão usado pelo CORE ASP.NET é JSON. Mas o cliente pode especificar o formato ProtoBuf :
using ( var httpClient = new HttpClient ( ) )
{
client . DefaultRequestHeaders . Accept . Add ( new MediaTypeWithQualityHeaderValue ( "application/protobuf" ) ) ;
var response = await client . GetAsync ( "/api/products/5" ) ;
var product = response . Content . ReadFromProtoBufAsync < Product > ( ) ;
}Neste exemplo, é usado o pacote ByNDYUSOFT.NET.HTTP.ProtoBuf.
Os aplicativos Core ASP.NET que precisam suportar o formato Protobuf podem adicionar os pacotes Byndyusoft.AspNetCore.Mvc.Formatters.ProtoBuf nuget e configurar suporte. Existem formatados separados para entrada e saída. Os formatados de entrada são usados pela ligação do modelo. Os formatados de saída são usados para formatar respostas.
dotnet add package Byndyusoft.AspNetCore.Mvc.Formatters.ProtoBuf Os formatados Protobuf implementados usando ProtoBufSerializer são configurados chamando AddProtoBufFormatters :
public void ConfigureServices ( IServiceCollection services )
{
services . AddMvcCore ( )
. AddProtoBufFormatters ( ) ;
} O código anterior serializa os resultados usando ProtoBufSerializer .
Os clientes podem solicitar um formato específico como parte do URL, por exemplo:
O mapeamento do caminho da solicitação deve ser especificado na rota que a API está usando. Por exemplo:
[ Route ( "api/[controller]" ) ]
[ ApiController ]
[ FormatFilter ]
public class ProductsController : ControllerBase
{
[ HttpGet ( "{id}.{format?}" ) ]
public Product Get ( int id )
{ A rota anterior permite que o formato solicitado seja especificado como uma extensão de arquivo opcional. O atributo [FormatFilter] verifica a existência do valor do formato no Routedata e mapeia o formato de resposta para o formatador apropriado quando a resposta é criada.
| Rota | Formatador |
|---|---|
| /API/Produtos/5 | O formatador de saída padrão |
| /api/products/5.json | O formatador JSON (se configurado) |
| /api/products/5.protobuf | O formatador protobuf (se configurado) |
Para contribuir, você precisará configurar seu ambiente local, consulte os pré -requisitos. Para o guia de contribuição e fluxo de trabalho, consulte o ciclo de vida do desenvolvimento de pacotes.
Uma visão geral detalhada sobre como contribuir pode ser encontrada no guia contribuinte.
Certifique -se de instalar todos os seguintes pré -requisitos em sua máquina de desenvolvimento:
srctestsmaster do projeto