Märkus.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida sisse logida või kausta vahetada.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida kausta vahetada.
Andmete muutmise operatsioonid on veebipõhise API põhiosa. Lisaks lihtsatele uuendamis- ja kustutamistoimingutele saad teha operatsioone ühe tabeli veergudel (entity atribuudid) ning koostada upsert-päringuid , mis kas uuendavad või lisavad andmeid sõltuvalt sellest, kas need eksisteerivad.
Põhivärskendus
Värskendustoimingud kasutavad HTTP-verbi PATCH . Edastage JSON-objekt, mis sisaldab atribuute, mida soovite värskendada, kirjet tähistavale URI-le. Kui uuendus õnnestub, tagastab vastus olekuks 204 No Content.
Päis If-Match: * tagab, et te ei loo uut kirjet kogemata upsert-toimingu tegemisega. Lisateabe saamiseks vaata Prevent create in upsert.
Oluline
Olemi värskendamisel kaasake taotluse kehasse ainult need atribuudid, mida muudate. Kui uuendad entiteeti, lisades kõik varasemalt saadud entiteedi omadused, uuendab operatsioon iga omadust isegi siis, kui väärtus on sama. See uuendus võib põhjustada süsteemisündmusi, mis käivitavad äriloogika, mis eeldab, et väärtused on muutunud. See võib põhjustada seda, et auditeerimisandmetes näib olevat uuendatud omadused, kuigi need tegelikult ei muutunud.
Kui uuendad statecode omadust, sea alati soovitud statuscode. Väärtused statecode ja statuscode sõltuvad üksteisest. Antud statecode väärtuse puhul võib olla mitu kehtivat statuscode väärtust. Kuid igal statecode veerul on konfigureeritud üks DefaultStatus väärtus. Kui uuendad statecode ilma määramata , statuscodemäärab süsteem vaikimisi oleku väärtuse. Samuti, kui lubad auditeerimise tabelis ja statuscode veerus, ei kajastu veeru muudetud väärtust statuscode auditi andmetes, kui sa seda uuendusoperatsioonis ei täpsusta.
Märkus.
Atribuutide definitsioon sisaldab RequiredLevel atribuuti. Kui see omadus on seatud , SystemRequiredei saa neid atribuute nullväärtuseks seada. Lisateabe saamiseks vaata Atribuudi nõude tase.
Selles näites värskendatakse olemasolevat kontokirjet väärtusega accountid 00000000-0000-0000-00000-000000000001.
Taotluse:
PATCH [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
If-Match: *
{
"name": "Updated Sample Account ",
"creditonhold": true,
"address1_latitude": 47.639583,
"description": "This is the updated description of the sample account",
"revenue": 6000000,
"accountcategorycode": 2
}
Vastus:
HTTP/1.1 204 No Content
OData-Version: 4.0
Märkus.
Lisateabe saamiseks üksuste seostamise ja eraldamise kohta uuenduse korral vaata Üheväärtuslike navigeerimisomaduste kasutamine.
Värskendamine tagastatud andmetega
Andmete saamiseks uuendatavalt üksuselt koosta oma PATCH päring nii, et see tagastaks uuendatud kirje andmed staatusega 200 (OK). Selle tulemuse saamiseks kasuta Prefer: return=representation päringu päist.
Selleks, et kontrollida, millised omadused tagastatakse, lisa $select päringuvalik entiteedi komplekti URL-ile. Päringusuvandit $expand ignoreeritakse, kui seda kasutatakse.
Selles näites värskendatakse konto olemit ja tagastatakse vastuses nõutud andmed.
Taotluse:
PATCH [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)?$select=name,creditonhold,address1_latitude,description,revenue,accountcategorycode,createdon HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
Content-Type: application/json; charset=utf-8
Prefer: return=representation
If-Match: *
{"name":"Updated Sample Account"}
Vastus:
HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
Preference-Applied: return=representation
OData-Version: 4.0
{
"@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts/$entity",
"@odata.etag": "W/\"536537\"",
"accountid": "00000000-0000-0000-0000-000000000001",
"accountcategorycode": 1,
"description": "This is the description of the sample account",
"address1_latitude": 47.63958,
"creditonhold": false,
"name": "Updated Sample Account",
"createdon": "2016-09-28T23:14:00Z",
"revenue": 5000000.0000,
"_transactioncurrencyid_value": "048dddaa-6f7f-e611-80d3-00155db5e0b6"
}
Mitme kirje värskendamine ühes taotluses
Kiireim viis mitme sama tüüpi kirje värskendamiseks ühe taotlusega on kasutada toimingut Värskenda_mitu. Kõik standardtabelid ei toeta seda toimingut, kuid kõik elastsed tabelid toetavad.
Lisateave:
- Hulgitoimingu teated
- Näide: veebi API Hulgitoimingute kasutamine
- Funktsiooni UpdateMultiple kasutamine elastsete tabelitega
Ühe atribuudi väärtuse värskendamine
Ühe omaduse väärtuse uuendamiseks kasuta päringut PUT ja lisa omaduse nimi üksuse URI-le.
Järgmine näide uuendab name olemasoleva rea omadust väärtusega accountid00000000-0000-0000-0000-000000000001.account
Taotluse:
PUT [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)/name HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
{"value": "Updated Sample Account Name"}
Vastus:
HTTP/1.1 204 No Content
OData-Version: 4.0
Ühe atribuudi väärtuse kustutamine
Ühe omaduse väärtuse kustutamiseks kasuta DELETE päringut, mille omaduse nimi on lisatud üksuse URI-le.
Järgmine näide kustutab description konto üksuse omaduse väärtuse, mille accountid väärtus on 00000000-0000-0000-0000-000000000001.
Taotluse:
DELETE [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001)/description HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Vastus:
HTTP/1.1 204 No Content
OData-Version: 4.0
Märkus.
Seda lähenemist ei saa kasutada üheväärtusliku navigeerimisomadusega, et lahutada kaks üksust. Alternatiivse lähenemise kohta vaata Dissotsiatsiooni ühe väärtusega navigeerimisomaduse kasutamisega.
Upsert a table row
Upserti toiming sarnaneb värskendusega. See kasutab päringut PATCH ja kasutab konkreetsele kirjele viitamiseks URI-d. Erinevus seisneb selles, et kui kirjet pole olemas, siis see luuakse. Kui see on juba olemas, siis seda värskendatakse.
Upsert on väärtuslik andmete sünkroonimisel väliste süsteemide vahel. Väline süsteem ei pruugi sisaldada viidet Dataverse'i tabeli põhivõtmele, seega saab Dataverse'i tabeli alternatiivvõtmeid seadistada, kasutades välise süsteemi väärtusi, mis unikaalselt identifitseerivad kirjet mõlemas süsteemis. Lisateave: alternatiivvõtmete määratlemine viiteridadele
Kõiki tabeli jaoks määratletud alternatiivvõtmeid näete $metadata teenusedokumendi olemitüübi marginaalides. Lisateave: Alternatiivklahvid.
Järgmises näites on tabel nimega sample_thing , millel on alternatiivvõti, mis viitab kahele veerule: sample_key1 ja sample_key2, mis mõlemad on määratletud täisarvuliste väärtuste salvestamiseks.
Taotluse:
PATCH [Organization URI]/api/data/v9.2/sample_things(sample_key1=1,sample_key2=1) HTTP/1.1
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Content-Type: application/json
{
"sample_name": "1:1"
}
Nii loomise kui uuendamise operatsioonide puhul saad sama vastuse. Pange tähele, kuidas OData-EntityId vastuse päis kasutab kirje GUID primaarvõtme identifikaatori asemel võtmeväärtusi.
Vastus:
HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [Organization URI]/api/data/v9.2/sample_things(sample_key1=1,sample_key2=1)
Kuna vastus on sama, ei saa te teada, kas toiming tähistas operatsiooni või CreateUpdate .
Kui teil on vaja teada, võite kasutada Prefer: return=representation taotluse päist. Selle päise abil saad 201 Created vastuse, kui kirje luuakse, ja 200 OK vastuse, kui kirjet uuendatakse. See suvand lisab Retrieve toimingu, mis mõjutab jõudlust. Kui kasutate Prefer: return=representation taotluse päist, veenduge, et see $select sisaldaks minimaalset andmemahtu, eelistatavalt ainult primaarvõtme veergu. Lisateave: Värskenda tagastatud andmetega ja Loo tagastatud andmetega.
Kui kasutad alternatiivseid võtmeid, ära lisa alternatiivseid võtmeväärtusi päringu kehasse.
- Kui upsert tähistab ,
Updateignoreeritakse neid alternatiivseid võtmeväärtusi. Alternatiivseid võtmeväärtusi ei saa värskendada, kui kasutate neid kirje tuvastamiseks. - Kui upsert tähistab a
Create, määratakse URL-i võtmeväärtused kirje jaoks, kui neid pole kehas. Seega pole vaja neid taotluse sisusse lisada.
Lisateave: Upserti kasutamine kirje loomiseks või värskendamiseks
Märkus.
Tavaliselt uue kirje loomisel lubatakse süsteemil määrata peamisele võtmele GUID-väärtus. See praktika on parim, sest süsteem genereerib võtmeid, mis on indeksi jaoks optimeeritud, ning see valik parandab jõudlust. Kuid kui teil on vaja luua kirje kindla primaarvõtme väärtusega, näiteks kui võtme GUID-väärtuse loob väline süsteem, pakub toiming upsert selleks võimalust.
Upsert-iga loomise või värskendamise takistamine
Mõnikord tahad teha ühe upsert võimaliku operatsiooni, aga takistada: kas luua või uuendada. Neid operatsioone saab takistada, kasutades päiseid If-MatchIf-None-Match . Lisateavet leiate teemast Upserti toimingute piiramine.
Põhiline kustutamine
Kustutamistoiming on lihtne. Kasutage DELETE tegusõna koos selle olemi URI-ga, mille soovite kustutada. See näidissõnum kustutab konto üksuse, mille peamine võtmeväärtus accountid on võrdne .00000000-0000-0000-0000-000000000001
Taotluse:
DELETE [Organization URI]/api/data/v9.2/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Vastus:
Kui olem on olemas, saate tavalise vastuse olekuga 204, mis näitab, et kustutamine õnnestus. Kui olemit ei leita, saate vastuse olekuga 404.
HTTP/1.1 204 No Content
OData-Version: 4.0
Duplikaatkirjete kontrollimine
Lisateavet selle kohta, kuidas värskendustoimingu ajal duplikaatkirjeid otsida, leiate teemast Duplikaatide tuvastamine värskendustoimingu ajal veebi API abil.
Mitme kirje kustutamine ühe taotlusega
Mitme sama tüüpi kirje kustutamiseks ühe päringu jooksul kasuta tegevust DeleteMultiple . Tavalised tabelid seda DeleteMultiple tegevust ei toeta, aga kõik elastsed lauad toetavad.
Märkus.
Tavaliste tabelite jaoks kasuta BulkDelete tegevust. See toiming võimaldab asünkroonset kirjete kustutamist, mis vastavad päringule. Lisateabe saamiseks vaata "Kustuta andmed hulgi".
Lisateave:
- Hulgitoimingu teated
- Elastse tabeli näidiskood
- Funktsiooni DeleteMultiple kasutamine elastsete tabelitega
Salvestussektsioonides olevate dokumentide värskendamine ja kustutamine
Kui uuendad või kustutad elastset tabeli andmeid, mis on salvestatud partitsioonidesse, määra partitsiooni võti, kui sellele andmele ligi pääsed.
Lisateave: PartitionId väärtuse valimine
Vaata ka
Veebi API põhitoimingute näidis (C#)
Veebi API põhitoimingute näidis (kliendipoolne JavaScript)
Soorita toimingud veebi API abil
HTTP-päringute koostamine ja tõrgete käsitlemine
Andmete päring veebi API abil
Tabelirea loomine veebi API abil
Tabelirea toomine veebi API abil
Tabeliridade seostamine ja eemaldamine veebi API abil
Veebi API funktsioonide kasutamine
Web API toimingute kasutamine
Paketttoimingute tegemine veebi API abil
Teise kasutajana esinemine veebi API abil
Tingimuslike toimingute tegemine veebi API abil