Was ist eine Azure-API?

Azure ist eine Cloud-Computing-Plattform, die von Microsoft mit mehr als 200 verfügbaren Diensten angeboten wird. Azure bietet verschiedene Clientbibliotheken und eine REST-API für den Zugriff auf diese Dienste. Es gibt eine kostenlose Stufe, mit der Sie auf mehrere Dienste zugreifen können, von denen viele kostenlos bleiben, solange Sie einige recht großzügige monatliche Limits nicht überschreiten. Wir werden den Dienst "Cognitive Search" verwenden, um eine Bildanalyse durchzuführen. Der Cognitive Search-Dienst ist immer kostenlos, sodass Sie niemals dafür bezahlen müssen.

Wie erhalten wir einen Abonnementschlüssel für den Zugriff auf die Azure-API?

Für den Zugriff auf die Azure REST-API benötigen wir einen Abonnementschlüssel. Der Abonnementschlüssel ist ein Schlüssel, der einer 'Ressource' zugewiesen ist. Wir müssen also zuerst eine Ressource erstellen. Zum Erstellen einer Ressource benötigen Sie ein aktives Azure-Abonnement. Bitte besuchen Sie diesen Link, um ein Abonnement zu erstellen:

https://azure.microsoft.com/free/cognitive-services/

Sobald Sie das Azure-Abonnement eingerichtet haben, müssen Sie eine Computer Vision-Ressource erstellen. Stellen Sie sicher, dass Sie die richtige geografische Region ausgewählt haben, da Sie dies später nicht ändern können. Besuchen Sie diesen Link, um die Ressource zu erstellen:

https://portal.azure.com/#create/Microsoft.CognitiveServicesComputerVision

Um den Abonnementschlüssel Ihrer Ressource zu erhalten, öffnen Sie die Ressource und gehen Sie zu „Schlüssel und Endpunkte“. Dort sehen Sie zwei Schlüssel und den Speicherort, an dem unser REST-API-Aufruf ausgeführt werden muss.

Wie stelle ich mit dem Delphi REST-Client eine Anfrage an die Azure REST-API?

Das Aufrufen der REST-API vom Delphi-Client aus ist einfach. Sie müssen nur wenige Parameter einstellen und können diese auch in der Entwurfszeit ausführen. Lassen Sie eine DEMO-Anwendung machen. Ziehen Sie diese Komponenten zunächst per Drag & Drop in ein Forum.

TRESTClient

TRESTRequest

TRESTResponse

Platzieren Sie außerdem einige Eingabesteuerelemente, um die API-URL, den Abonnementschlüssel und die Bild-URL abzurufen. Platziere a TButton um die Anfrage zu starten. Der Inhaltstyp des REST-Clients muss „Anwendung / json“. Legen Sie nun die Client- und Antworteigenschaften von fest TRESTRequest Komponente an den Client und Antwortkomponenten, die wir zuvor platziert haben. Stellen Sie die Methode auch auf „rmPOST“.

Der Code für die Schaltfläche Start sieht folgendermaßen aus:

Prozedur TfrmMain.btnStartClick (Absender: TObject); var lparam: Trestrequestparameter; imgProcessed: bool; jsonObj, jsonStatus: TJSONObject; begin memResponse.Lines.Clear; RESTClient.BaseURL: = edAPIURL.Text; RESTRequest.Method: = rmpost; imgProcessed: = false; versuchen Sie RESTRequest.Params.Clear; RESTResponse.RootElement: = ''; lparam: = RESTRequest.Params.AddItem; lparam.name: = 'Ocp-Apim-Subscription-Key'; lparam.Value: = edSubKey.Text; lparam.ContentType: = ctNone; lparam.Kind: = pkHTTPHEADER; // Dieser ist wichtig, sonst wird '==' url-codiert. Lparam.Options: = [poDoNotEncode];
     lparam: = RESTRequest.Params.AddItem; 
     lparam.name: = 'data'; 
     lparam.Value: = '{"url": "' + edImgURL.Text + '"}'; 
     lparam.ContentType: = ctAPPLICATION_JSON; 
     lparam.Kind: = pkGETorPOST; 
     RESTRequest.Execute; 
     Wenn nicht RESTResponse.Status.Success, dann showmessage (RESTResponse.StatusText + '' + inttostr (RESTResponse.StatusCode)) 
sonst 
Start   
    memResponse.Lines.Add (RESTResponse.JSONText); 
Ende;
endlich enden; Ende;

Dieser Code fügt der TRESTRequest einen neuen Parameter hinzu und legt den Abonnementschlüssel fest. Der Abonnementschlüssel muss als HTTP-Header übergeben werden und der Name sollte „Ocp-Apim-Abonnement-Schlüssel“. Der Wertparameter ist der Abonnementschlüssel, den wir zuvor kopiert haben. Es ist auch wichtig, die Option „poDoNotEncode“, Andernfalls wird der Schlüssel verschlüsselt. Auch die Basis-URL der TRESTClient muss eingestellt werden. Wenn wir die Basis-URL des Azure-Clients eingeben, müssen wir die Region unserer Ressource berücksichtigen. Es sollte die Subdomain der URL sein. Die Basis-URL sieht folgendermaßen aus.

https://eastus.api.cognitive.microsoft.com/vision/v3.2/analyze?visualFeatures=Description

Ersetzen “eastus”Mit Ihrer Region oder wird es nicht Arbeit. Es gibt auch viele Parameter, die Sie über diese URL übergeben können. Bitte besuchen Sie diesen Link, um alle Parameter zu finden.

https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/vision-api-how-to-topics/howtocallvisionapi

In dieser Demo haben wir bestanden “visualFeatures = Beschreibung”, Die unser Bild in einem Satz beschreiben wird. Außerdem müssen wir unsere Bild-URL im JSON-Format übergeben. Fügen Sie dazu dem Parameter einen neuen Parameter hinzu TRESTRequest und setzen Sie den Inhaltstyp auf „ctAPPLICATION_JSON”, Setze den Namen auf“URL”Und der Wert in diesem Format:

{"url": "IMAGE_URL"}

Unsere endgültige Bewerbung sollte so aussehen.

Bildanalyse-API in Aktion

Sie können die DEMO-Anwendung von GitHub herunterladen: https://github.com/checkdigits/ImageAnalysisClient_example


Probieren Sie es selbst aus und sehen Sie, ob es die schnellste Möglichkeit ist, Ihren Windows-, MacOS- und Mobilanwendungen eine Bildanalyse hinzuzufügen.

schließen

Reduzieren Sie die Entwicklungszeit und kommen Sie mit RAD Studio, Delphi oder C ++ Builder schneller auf den Markt.
Design. Code. Kompilieren. Bereitstellen.
Kostenlos testen   Upgrade heute

   Kostenlose Delphi Community Edition   Kostenlose C ++ Builder Community Edition