Ερώτημα για δεδομένα χρησιμοποιώντας το Web API πυλών
Μπορείτε να χρησιμοποιήσετε τις διαθέσιμες λειτουργίες Web ΑΡΙ στο Power Pages. Οι λειτουργίες Web API αποτελούνται από αιτήσεις και αποκρίσεις HTTP. Σε αυτό το άρθρο παρέχονται δείγματα λειτουργιών ανάγνωσης, μεθόδων, URI και το δείγμα JSON που μπορείτε να χρησιμοποιήσετε στην αίτηση HTTP.
Προϋποθέσεις
Η έκδοση της τοποθεσίας web σας πρέπει να είναι 9.4.1.x ή νεότερη.
Ενεργοποίηση πίνακα και πεδίου για λειτουργίες Web API. Περισσότερες πληροφορίες: Ρυθμίσεις τοποθεσίας για Web API
Τα ΑΡΙ Web πυλών έχουν πρόσβαση σε καρτέλες πίνακα και ακολουθούν τα δικαιώματα πίνακα που δίνονται στους χρήστες μέσω των συσχετισμένων ρόλων web. Βεβαιωθείτε ότι ρυθμίζετε τις παραμέτρους των σωστών δικαιωμάτων πίνακα. Περισσότερες πληροφορίες: Δημιουργία ρόλων web
Σημείωμα
Όταν αναφέρεστε Dataverse πίνακες χρησιμοποιώντας το API web πυλών, πρέπει να χρησιμοποιήσετε το EntitySetName, για παράδειγμα, για να αποκτήσετε πρόσβαση στον πίνακα λογαριασμός, η σύνταξη κώδικα θα χρησιμοποιήσει το EntitySetName των λογαριασμών.
Καρτέλες ερωτήματος
Το παρακάτω παράδειγμα υποβάλλει ερωτήματα για καρτέλες λογαριασμών:
Λειτουργία | Method | URI |
---|---|---|
Ανάκτηση καρτελών πίνακα | GET |
[Portal URI]/_api/accounts
Παράδειγμα: https://contoso.powerappsportals.com/_api/accounts |
Δείγμα απόκρισης
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
]
}
Χρησιμοποιήστε επιλογές ερωτημάτων συστήματος $select και $top για να επιστρέψετε την ιδιότητα ονόματος για τους τρεις πρώτους λογαριασμούς:
Λειτουργία | Method | URI |
---|---|---|
Ανάκτηση των τριών πρώτων καρτελών οντότητας | GET |
[Portal URI]/_api/accounts?$select=name,revenue&$top=3
Παράδειγμα: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Ανάκτηση λογαριασμού με χρήση του αναγνωριστικού λογαριασμού:
Λειτουργία | Method | URI |
---|---|---|
Ανάκτηση συγκεκριμένης ιδιότητας για μια καρτέλα | GET |
[Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name
Παράδειγμα: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Δείγμα απόκρισης
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Εφαρμογή επιλογών ερωτήματος συστήματος
Κάθε επιλογή ερωτήματος συστήματος που προσαρτάτε στη διεύθυνση URL για το σύνολο οντοτήτων, προστίθεται χρησιμοποιώντας τη σύνταξη για συμβολοσειρές ερωτημάτων. Η πρώτη προσαρτάται μετά το [?] και οι ακόλουθες επιλογές ερωτήματος διαχωρίζονται με χρήση του [&]. Σε όλες τις επιλογές ερωτήματος ισχύει διάκριση πεζών-κεφαλαίων, όπως φαίνεται στο παρακάτω παράδειγμα:
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3
Παράδειγμα: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Αίτηση συγκεκριμένων ιδιοτήτων
Χρησιμοποιήστε την επιλογή ερωτήματος συστήματος $select για να περιορίσετε τις ιδιότητες που επιστρέφονται, όπως φαίνεται στο παρακάτω παράδειγμα:
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name,revenue&$top=3
Παράδειγμα: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Σημαντικό
Είναι μια βέλτιστη πρακτική για επιδόσεις. Εάν οι ιδιότητες δεν καθορίζονται και έχετε ρυθμίσει τις παραμέτρους της τιμής ρύθμισης τοποθεσίας Webapi/<table name>/fields
σε *
, τότε όλες οι ιδιότητες θα επιστραφούν χρησιμοποιώντας το $select
. Εάν δεν καθορίζονται ιδιότητες, θα επιστραφεί σφάλμα.
Αποτελέσματα φίλτρου
Χρησιμοποιήστε την επιλογή ερωτήματος συστήματος $filter για να ορίσετε κριτήρια για το ποιες γραμμές θα επιστραφούν.
Τελεστές τυπικού φίλτρου
Το Web ΑΡΙ υποστηρίζει τους τυπικούς τελεστές φίλτρων OData που παρατίθενται στον ακόλουθο πίνακα:
Τελεστής | Περιγραφή | Παράδειγμα |
---|---|---|
Τελεστές σύγκρισης | ||
eq | Ίσο | $filter=revenue eq 100000 |
ne | Δεν είναι ίσο | $filter=revenue ne 100000 |
gt | Μεγαλύτερο από | $filter=revenue gt 100000 |
ge | Μεγαλύτερο από ή ίσο με | $filter=revenue ge 100000 |
lt | Μικρότερο από | $filter=revenue lt 100000 |
le | Μικρότερο από ή ίσο με | $filter=revenue le 100000 |
Λογικοί τελεστές | ||
and | Λογικός και | $filter=revenue lt 100000 and revenue gt 2000 |
or | Λογικό ή | $filter=contains(name,'(sample)') or contains(name,'test') |
not | Λογική άρνηση | $filter=not contains(name,'sample') |
Τελεστές ομαδοποίησης | ||
( ) | Ομαδοποίηση προτεραιότητας | (contains(name,'sample') or contains(name,'test')) and revenue gt 5000 |
Τυπικές λειτουργίες ερωτημάτων
Το Web ΑΡΙ υποστηρίζει αυτές τις τυπικές λειτουργίες ερωτήματος συμβολοσειράς OData:
Λειτουργία | Παράδειγμα |
---|---|
περιέχει | $filter=contains(name,'(sample)') |
endswith | $filter=endswith(name,'Inc.') |
startswith | $filter=startswith(name,'a') |
Συναρτήσεις ερωτήματος Dataverse
Το ΑΡΙ Web υποστηρίζει συναρτήσεις ερωτήματος Dataverse για το φιλτράρισμα αποτελεσμάτων. Για περισσότερες πληροφορίες, ανατρέξτε στην Αναφορά συνάρτησης ερωτήματος Web API.
Σειρά αποτελεσμάτων
Καθορίστε τη σειρά επιστροφής των στοιχείων χρησιμοποιώντας την επιλογή ερωτήματος συστήματος $orderby. Χρησιμοποιήστε το επίθημα asc ή desc για να καθορίσετε αύξουσα ή φθίνουσα σειρά αντίστοιχα. Η προεπιλογή είναι αύξουσα εάν δεν εφαρμοστεί το επίθημα. Το παρακάτω παράδειγμα δείχνει την ανάκτηση των ιδιοτήτων ονόματος και εσόδων των λογαριασμών με αύξουσα σειρά εσόδων και με φθίνουσα σειρά ονομάτων.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000
Παράδειγμα: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Συγκεντρωτικά αποτελέσματα και ομαδοποίηση αποτελεσμάτων
Χρησιμοποιώντας την $apply, μπορείτε να συναθροίζετε τα δεδομένα σας και να τα ομαδοποιείτε δυναμικά, όπως φαίνεται στα παρακάτω παραδείγματα:
Σενάρια | Παράδειγμα |
---|---|
Λίστα μοναδικών καταστάσεων στο ερώτημα | accounts?$apply=groupby((statuscode)) |
Συγκεντρωτικό άθροισμα της εκτιμώμενης τιμής | opportunities?$apply=aggregate(estimatedvalue with sum as total) |
Μέσο μέγεθος της συμφωνίας με βάση την εκτιμώμενη αξία και κατάσταση | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue) |
Άθροισμα της εκτιμώμενης αξίας βάσει κατάστασης | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total)) |
Συνολικά έσοδα ευκαιρίας κατά όνομα λογαριασμού | opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total)) |
Κύρια ονόματα επαφών για λογαριασμούς στην 'WA' | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Τελευταία δημιουργηθείσα ημερομηνία και ώρα καρτέλας | accounts?$apply=aggregate(createdon with max as lastCreate) |
Πρώτη δημιουργηθείσα ημερομηνία και ώρα καρτέλας | accounts?$apply=aggregate(createdon with min as firstCreate) |
Ανάκτηση ενός πλήθους γραμμών
Χρησιμοποιήστε την επιλογή ερωτήματος συστήματος $count με τιμή true για να συμπεριλάβετε μια μέτρηση οντοτήτων που συμφωνούν με τα κριτήρια φίλτρου έως και 5.000.
Method | URI |
---|---|
GET |
[Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true
Παράδειγμα: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Δείγμα απόκρισης
{
"@odata.count": 10,
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
]
}
Εάν δεν θέλετε να επιστραφούν δεδομένα εκτός από το πλήθος, μπορείτε να εφαρμόσετε $count σε οποιαδήποτε συλλογή για να λάβετε μόνο την τιμή.
Method | URI |
---|---|
GET |
[Portal URI/_api/accounts/$count
Παράδειγμα: https://contoso.powerappsportals.com/_api/accounts/$count |
Δείγμα απόκρισης
3
Σύγκριση στηλών
Το παρακάτω παράδειγμα δείχνει τον τρόπο σύγκρισης στηλών με χρήση του API Web:
Method | URI |
---|---|
GET |
[Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname
Παράδειγμα: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Ανάκτηση σχετιζόμενων καρτελών πίνακα με ένα ερώτημα
Χρησιμοποιήστε την επιλογή ερωτήματος συστήματος $expand στις ιδιότητες περιήγησης για να ελέγξετε ποια δεδομένα από σχετικές οντότητες επιστρέφονται.
Ιδιότητα πλοήγησης που σχετίζεται με αναζήτηση
Θα χρειαστεί να χρησιμοποιήσετε το Microsoft.Dynamics.CRM.associatednavigationproperty ως χαρακτηριστικό αναζήτησης όταν χρησιμοποιείτε την επιλογή ερωτήματος $expand.
Για να προσδιορίσετε το Microsoft.Dynamics.CRM.associatednavigationproperty ενός χαρακτηριστικού, μπορείτε να κάνετε την ακόλουθη αίτηση http GET για τη στήλη χρησιμοποιώντας την παρακάτω σύμβαση ονομασίας: _όνομα_τιμή.
Στο παρακάτω παράδειγμα, μπορούμε να προσδιορίσουμε τη συσχετισμένη ιδιότητα περιήγησης της στήλης Κύρια επαφή του πίνακα Λογαριασμός καθορίζοντας το όνομα της στήλης primarycontactid μορφοποιώντας το όνομα στην αίτηση: _primarycontactid_value.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=_primarycontactid_value
Παράδειγμα https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Δείγμα απόκρισης
{
"value": [
{
"@odata.etag": "W/\"2465216\"",
"_primarycontactid_value@OData.Community.Display.V1.FormattedValue": "Yvonne McKay (sample)",
"_primarycontactid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "primarycontactid",
"_primarycontactid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "contact",
"_primarycontactid_value": "417319b5-cd18-ed11-b83c-000d3af4d812",
"accountid": "2d7319b5-cd18-ed11-b83c-000d3af4d812"
}
]
}
Βλέπουμε από την απόκριση ότι η συσχετισμένη ιδιότητα περιήγησης είναι primarycontactid. Η συσχετισμένη ιδιότητα περιήγησης μπορεί να είναι το λογικό όνομα ή το όνομα σχήματος της στήλης αναζήτησης με τον τρόπο δημιουργίας του πίνακα.
Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Ανάκτηση δεδομένων σχετικά με τις ιδιότητες αναζήτησης.
Ανάκτηση σχετιζόμενων καρτελών πίνακα με ανάπτυξη ιδιοτήτων περιήγησης μίας τιμής
Το παρακάτω παράδειγμα δείχνει τον τρόπο ανάκτησης της επαφής για όλες τις καρτέλες λογαριασμών. Για τις σχετικές καρτέλες επαφών, ανακτάμε μόνο τα contactid και fullname.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname)
Παράδειγμα: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
Δείγμα απόκρισης
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e6e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Yvonne McKay (sample)"
}
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e8e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Susanna Stubberod (sample)"
}
}
]
}
Ανάκτηση σχετιζόμενων πινάκων με ανάπτυξη ιδιοτήτων περιήγησης τιμής συλλογής
Εάν αναπτύξετε τις παραμέτρους περιήγησης με τιμή συλλογής για την ανάκτηση σχετικών πινάκων για σύνολα οντοτήτων, επιστρέφεται μόνο ένα επίπεδο βάθους εάν υπάρχουν δεδομένα. Διαφορετικά, η συλλογή θα επιστρέψει έναν κενό πίνακα.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart)
Παράδειγμα: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Ανάκτηση σχετιζόμενων πινάκων με ανάπτυξη ιδιοτήτων περιήγησης τόσο μεμονωμένης τιμής όσο και τιμής συλλογής
Το παρακάτω παράδειγμα δείχνει τον τρόπο με τον οποίο μπορείτε να αναπτύξετε σχετικές οντότητες για σύνολα οντοτήτων χρησιμοποιώντας ιδιότητες περιήγησης μεμονωμένης τιμής και τιμής συλλογής. Θα χρειαστεί να καθορίσετε το όνομα της σχέσης πίνακα στη σύνταξη του κώδικά σας.
Method | URI |
---|---|
GET |
[Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart)
Παράδειγμα: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Επόμενο βήμα
Λειτουργίες εγγραφής, ενημέρωσης και διαγραφής πυλών χρησιμοποιώντας το API Web