Eventos
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
As bibliotecas de clientes do SDK do Azure fornecem uma interface para os serviços do Azure traduzindo chamadas de método em mensagens enviadas por meio do respectivo protocolo de serviço. Para serviços de API REST, isso significa enviar solicitações HTTP e converter as respostas em tipos de runtime. Neste artigo, você aprenderá sobre os diferentes tipos de métodos expostos pelas bibliotecas de cliente e explorará seus padrões de implementação.
Uma biblioteca de clientes do SDK do Azure para .NET pode expor duas categorias diferentes de métodos para fazer solicitações a um serviço do Azure:
Os métodos de protocolo e conveniência implementam padrões ligeiramente diferentes com base na cadeia de dependência de pacote subjacente da respectiva biblioteca. Uma biblioteca de clientes do SDK do Azure para .NET depende de uma das duas bibliotecas fundamentais diferentes:
Azure.Storage.Blobs
.System.ClientModel
é um conjunto de ferramentas de uso geral projetado para ajudar a criar bibliotecas para várias plataformas e serviços, enquanto a biblioteca Azure.Core
foi projetada especificamente para criar bibliotecas de cliente do Azure.Observação
A biblioteca Azure.Core
em si também depende de System.ClientModel
para vários blocos de construção do cliente. No contexto deste artigo, o diferencial chave para padrões de método é se uma biblioteca de clientes depende de Azure.Core
ou System.ClientModel
diretamente, em vez de por meio de uma dependência transitiva.
A tabela a seguir compara alguns dos tipos de solicitação e resposta usados por métodos de protocolo e conveniência, com base em se a biblioteca depende de Azure.Core
ou System.ClientModel
.
Solicitar uma preocupação de resposta | Azure.Core | System.ClientModel |
---|---|---|
Corpo da solicitação | RequestContent | BinaryContent |
Opções avançadas de solicitação | RequestContext | RequestOptions |
Resposta HTTP bruta | Response | PipelineResponse |
Tipo de retorno com o modelo de saída | Response<T> | ClientResult<T> |
As seções adiante fornecem exemplos de implementação desses conceitos.
Os padrões e tipos de codificação usados pelo protocolo de biblioteca de clientes e métodos de conveniência variam ligeiramente de acordo com se a biblioteca depende de Azure.Core
ou System.ClientModel
. As diferenças influenciam principalmente os tipos .NET usados para lidar com dados de solicitação e resposta.
As bibliotecas de clientes do SDK do Azure que aderirem às diretrizes de design mais recentes dependem da biblioteca Azure.Core
. Por exemplo, a biblioteca Azure.AI.ContentSafety
depende da biblioteca Azure.Core
e fornece uma classe ContentSafetyClient
que expõe métodos de protocolo e conveniência.
O código a seguir usa ContentSafetyClient
para chamar o método de conveniência AnalyzeText
:
using Azure.AI.ContentSafety;
using Azure.Identity;
// Create the client
ContentSafetyClient client = new(
new Uri("https://contentsafetyai.cognitiveservices.azure.com/"),
new DefaultAzureCredential());
// Call the convenience method
AnalyzeTextResult result = client.AnalyzeText("What is Microsoft Azure?");
// Display the results
foreach (TextCategoriesAnalysis item in result.CategoriesAnalysis)
{
Console.WriteLine($"{item.Category}: {item.Severity}");
}
O código anterior demonstra os seguintes padrões de método de conveniência Azure.Core
:
Algumas bibliotecas de clientes que se conectam a serviços que não são do Azure usam padrões semelhantes às bibliotecas que dependem de Azure.Core
. Por exemplo, a biblioteca de OpenAI
fornece um cliente que se conecta aos serviços OpenAI. Essas bibliotecas são baseadas em uma biblioteca chamada System.ClientModel
que tem padrões semelhantes a Azure.Core
.
Considere o seguinte código que usa um ChatClient
para chamar o método de conveniência CompleteChat
:
using OpenAI.Chat;
// Create the client
ChatClient client = new(
model: "gpt-4o-mini",
credential: Environment.GetEnvironmentVariable("OPENAI_API_KEY")!);
// Call the convenience method
ChatCompletion completion = client.CompleteChat("What is Microsoft Azure?");
// Display the results
Console.WriteLine($"[{completion.Role}]: {completion}");
O código anterior demonstra os seguintes padrões de método de conveniência System.ClientModel
:
ClientResult
amigável que representa o resultado da operação.Quando uma chamada de serviço falha, o cliente de serviço lança uma exceção que expõe o código do status HTTP e os detalhes da resposta do serviço, se estiverem disponíveis. Uma biblioteca dependente de System.ClientModel
lança um ClientResultException, enquanto uma biblioteca dependente de Azure.Core
lança um RequestFailedException.
using Azure.AI.ContentSafety;
using Azure.Identity;
using Azure;
// Create the client
ContentSafetyClient client = new(
new Uri("https://contentsafetyai.cognitiveservices.azure.com/"),
new DefaultAzureCredential());
try
{
// Call the convenience method
AnalyzeTextResult result = client.AnalyzeText("What is Microsoft Azure?");
// Display the results
foreach (TextCategoriesAnalysis item in result.CategoriesAnalysis)
{
Console.WriteLine($"{item.Category}: {item.Severity}");
}
}
catch (RequestFailedException ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
Embora o SDK do Azure para bibliotecas de clientes .NET forneça a opção de usar métodos de protocolo ou conveniência, priorize o uso de métodos de conveniência na maioria dos cenários. Os métodos de conveniência são projetados para melhorar a experiência de desenvolvimento e fornecer flexibilidade para criar solicitações e lidar com respostas. No entanto, ambos os tipos de método podem ser usados em seu aplicativo conforme necessário. Considere os seguintes critérios ao decidir que tipo de método usar.
Métodos de conveniência:
Métodos de protocolo:
RequestContext
e RequestOptions
, que não estão disponíveis por meio de métodos de conveniência.Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
Eventos
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraTreinamento
Módulo
Zugreifen auf Daten in Azure Blob Storage mit verschiedenen Protokollen - Training
Sie können auf Ihre Daten in Azure Blob Storage mit verschiedenen Protokollen zugreifen, z. B. Representational State Transfer (REST), Hadoop Distributed File System (HDFS), Network File System (NFS) und Secure File Transfer Protocol (SFTP).
Documentação