normale Query vs. "API Query"

10. Dezember 2019 14:06

Hallo,

ich versuche zu verstehen, wann es Sinn macht, den "API Query Type" statt einen normalen Query zu verwenden.
Hierzu habe ich zunächst eine ganz normale Query erstellt und anschließend eine weitere identisch aufgebaute Query mit QueryTyp = API (und den sonstigen erforderlichen API-Feldern). Beide Abfragen habe ich dann über die WebServices veröffentlicht und sowohl im Browser aufgerufen als auch über OData nach Excel importiert.

Bis zu diesem Punkt kann ich keine relevanten Unterschiede erkennen - weder in den angezeigten Daten - noch in der Performance. Daher würde ich für unsere Zwecke wohl bei der "normalen" Query bleiben!?

Aber --- Kann mir vielleicht jemand erklären, ab wann man doch auf API-Queries gehen muss oder sollte?

Gruß
Ralf

Re: normale Query vs. "API Query"

10. Dezember 2019 15:20

Hi,
das sollte dir hoffentlich weiterhelfen
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-query-object


There are two types of query objects: normal and API. This article describes normal query objects, which can be used to display data in the user interface. API query objects are used to generate web service endpoints and cannot be displayed in the user interface. For information about creating a query of the type API, see API Query Type.

Re: normale Query vs. "API Query"

10. Dezember 2019 16:23

Die Microsoft-Hilfe habe ich natürlich gelesen - leider lässt sie mich aber ratlos zurück.

Gerade der Text "cannot be displayed in the user interface" --- was für ein User-Interface ist denn hier gemeint? Ich kann beide Queries problemlos z.B. in Chrome aufrufen - die Optik ist identisch. Und selbst wenn dem so wäre, warum sollte ich dann jemals API-Query einsetzen?
Vielleicht fehlt mir hier das technische Verständnis - hat jemand vielleicht ein "bildhaftes" Beispiel für die Unterschiede aus Sicht des Endanwender?

Gruß
Ralf

Re: normale Query vs. "API Query"

10. Dezember 2019 17:16

neckit hat geschrieben:... warum sollte ich dann jemals API-Query einsetzen?...

Der einzige Unterschied den ich sehe sind die Properties.
Code:
APIPublisher = 'contoso';
APIGroup = 'app1';
APIVersion = 'v1.0';
Caption = 'customerSales', Locked = true;
EntityName = 'customerSale';
EntitySetName = 'customerSales';

Es geht da wahrscheinlich hauptsächlich um den Aufruf, um stabile APIs zu generieren.

Microsoft hat geschrieben:The following query example publishes an API available at: ../contoso/app1/v1.0/companies({id})/customerSales. The APIVersion can be specified as one version, or a list of versions, if the API is supported through multiple versions.

Re: normale Query vs. "API Query"

10. Dezember 2019 20:51

OK - der Unterschied scheint dann ja derzeit nicht wirklich ins Gewicht zu fallen.

Vielen Dank für die Rückmeldungen!

Gruß
Ralf

Re: normale Query vs. "API Query"

11. Dezember 2019 18:12

UserInterface -> ich behaupte einfach mal, dass damit der WindowsClient / WebClient / TabletClient / PhoneClient /xClient von D365 gemeint ist.

Das du die Query im Browser aufrufen kannst, hat damit absolut nichts zu tun.

Ohne es probiert zu haben(!) , gehe ich jetzt einfach davon aus, dass du die API-Queries nicht als SourceExpr. einer Page verwenden...und/oder per "RUN" ausführen kannst.