To add cost-effective image analysis to your applications, this article will walk you through Azure API, how to obtain a subscription key to access Azure API, and how to make requests to Azure REST API using an IDE software with REST Client Feature.
O que é uma API do Azure?
Azure is a cloud computing platform offered by Microsoft with more than 200 available services. Azure provides various client libraries and a REST API to access those services. There’s a free tier to get you up and running which allows you to access several services free many of which remain free as long as you don’t exceed some quite generous monthly limits. We are going to use the “Cognitive Search” service to perform Image analysis. The Cognitive Search service is an always-free tier so you should never need to pay for it.
Como obtemos uma chave de assinatura para acessar a API do Azure?
To access the Azure REST API, we need a subscription key. A subscription key is a key assigned to a ‘resource’. So we need to create a resource first. To create a resource, you need an active Azure Subscription. Please visit this link to create a subscription:
https://azure.microsoft.com/free/cognitive-services/
Depois de configurar a assinatura do Azure, você deve criar um Recurso de Visão do Computador. Certifique-se de ter selecionado a região geográfica correta, porque você não pode alterar isso mais tarde. Visite este link para criar o recurso:
https://portal.azure.com/#create/Microsoft.CognitiveServicesComputerVision
Para obter a chave de assinatura do seu recurso, abra o recurso e vá para “Chaves e pontos de extremidade”. Lá você pode ver duas chaves e o local que precisa para fazer nossa chamada REST API.
Como fazer uma solicitação à API REST do Azure usando Delphi REST Client?
Chamar a API REST do Delphi Client é fácil. Você só precisa definir alguns parâmetros e pode executá-lo mesmo em tempo de design. Vamos fazer um aplicativo DEMO. Primeiro, arraste e solte esses componentes em um fórum.
TRESTClient
TRESTRequest
TRESTResponse
Além disso, coloque alguns controles de entrada para obter o URL da API, a chave de assinatura e o URL da imagem. Colocar um TButton
para iniciar o pedido. O tipo de conteúdo do Cliente REST deve ser “application / json
“. Agora defina as propriedades do cliente e da resposta do TRESTRequest
componente para o cliente e componentes de resposta que colocamos anteriormente. Defina também o método como “rmPOST
“.
O código do botão Iniciar é assim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
procedure TfrmMain.btnStartClick(Sender: TObject); var lparam : Trestrequestparameter; imgProcessed: bool; jsonObj, jsonStatus: TJSONObject; começar memResponse.Lines.Claro; RESTClient.BaseURL := edAPIURL.Text; RESTRequest.Method:=rmpost; imgProcessed := false; try RESTRequest.Params.Claro; RESTResponse.RootElement := ''; lparam := RESTRequest.Params.AddItem; lparam.name := 'Ocp-Apim-Subscription-Key'; lparam.Value := edSubKey.Text; lparam.ContentType := ctNone; lparam.Kind := pkHTTPHEADER; //This one is Important otherwise the '==' will get url encoded lparam.Options := [poDoNotEncode]; lparam := RESTRequest.Params.AddItem; lparam.name := 'data'; lparam.Value := '{"url":"' + edImgURL.Text + '"}'; lparam.ContentType := ctAPPLICATION_JSON; lparam.Kind := pkGETorPOST; RESTRequest.Execute; if não RESTResponse.Status.Success then showmessage(RESTResponse.StatusText + ' ' + inttostr(RESTResponse.StatusCode)) senão começar memResponse.Lines.Add(RESTResponse.JSONText); end; finally end; end; |
Este código adicionará um novo parâmetro ao TRESTRequest e definirá a chave de assinatura. A chave de assinatura deve ser passada como um cabeçalho HTTP e o nome deve ser “Ocp-Apim-Subscription-Key
“. O parâmetro de valor é a chave de assinatura que copiamos anteriormente. Também é importante incluir a opção “poDoNotEncode
“, Caso contrário, ele irá codificar a chave. Além disso, o URL base do TRESTClient
precisa ser definido. Quando inserimos a URL base do Cliente Azure, devemos considerar a região do nosso recurso. Deve ser o subdomínio da URL. O URL base terá esta aparência.
1 |
<a href="https://eastus.api.cognitive.microsoft.com/vision/v3.2/analyze?visualFeatures=Description" target="_blank" rel="noreferrer noopener nofollow">https://eastus.api.cognitive.microsoft.com/vision/v3.2/analyze?visualFeatures=Description</a> |
Substituir "Eastus
”Com a sua região ou irá não trabalhos. Além disso, existem vários parâmetros que você pode passar por este URL. Visite este link para encontrar todos os parâmetros.
Nesta demonstração passamos “visualFeatures = Descrição
”Que irá descrever nossa imagem em uma frase. Além disso, temos que passar nosso URL de imagem no formato JSON. Para fazer isso, adicione um novo parâmetro ao TRESTRequest
e defina o tipo de conteúdo para “ctAPPLICATION_JSON
”, Defina o nome para“url
”E o valor neste formato:
1 |
{"url":"IMAGE_URL"} |
Nosso aplicativo final deve ser assim.
Você pode baixar o aplicativo DEMO no GitHub: https://github.com/checkdigits/ImageAnalysisClient_example
Bem, experimente você mesmo e veja - é a maneira mais rápida de adicionar análise de imagem aos seus aplicativos Windows, macOS e móveis?
Projeto. Código. Compilar. Implante.
Iniciar avaliação gratuitaAprimore hoje
Delphi Community Edition grátisEdição gratuita da comunidade C ++ Builder