Делите путем


Коришћење операција писања, ажурирања и брисања у Web API-ју за портале

Можете обављати доступне операције Web API-ја у порталима. Web API операције састоје се од HTTP захтева и одговора. Овај чланак пружа примере операција писања, ажурирања и брисања, методе, URI-је и JSON узорке које можете користити у HTTP захтевима.

Важно

  • Верзија портала мора бити 9.3.3.к или новија да би ова функција радила.

Предуслови

  • Омогућите табелу и поље за Web API операције. Још информација: Поставке локације за Web API

  • Web API за портале приступа записима табеле и прати дозволе за табеле дате корисницима путем придружених веб-улога. Уверите се да сте конфигурисали одговарајуће дозволе за табелу. Још информација: Креирање веб-улога

Креирање записа у табели

Напомена

Када се позивате на Dataverse табеле које користе Web API портала, потребно је да користите EntitySetName, на пример, за приступ табели пословни контакт, синтакса кода ће користити EntitySetName пословни контакт.

Основно креирање

Операција Метод URI JSON узорак
Основно креирање Објављена порука [URI портала]/_api/accounts {"name":"Sample Account"}

Као пример, следеће тело захтева постављено у скуп табела пословног контакта креираће укупно четири нове табеле, укључујући пословни контакт, у контексту креирања пословног контакта.

  • Контакт се креира јер је дефинисан као својство објекта својства навигације са једном вредношћу primarycontactid.
  • Креира се могућност за пословање јер је дефинисана као објекат у оквиру низа који је подешен на вредност својства навигације са збирном вредношћу колекције opportunity_customer_accounts.
  • Креира се задатак јер је дефинисан као објекат у оквиру низа који је подешен на вредност својства навигације са збирном вредношћу колекције, Opportunity_Tasks.
{
 "name": "Sample Account",
 "primarycontactid":
 {
     "firstname": "Alton",
     "lastname": "Stott"
 },
 "opportunity_customer_accounts":
 [
  {
      "name": "Opportunity associated to Sample Account",
      "Opportunity_Tasks":
      [
       { "subject": "Task associated to opportunity" }
      ]
  }
 ]
}

Повезивање записа табеле при креирању

Операција Метод URI JSON узорак
Повезивање записа табеле при креирању POST [URI портала]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

Пример JSON за креирање анотације путем Web API-ја

{
    "new_attribute1": "test attribute 1",
    "new_attribute2": "test attribute 2",
    "new_comments": "test comments",
    "new_recordurl": recordURL,
    "new_feedback_Annotations":
        [
            {
                "notetext": "Screenshot attached",
                "subject": "Attachment",
                "filename": file.name,
                "mimetype": file.type,
                "documentbody": base64str,
            }
        ]
    }

documentbody ће садржати прилог као base64 стринг.

Ажурирајте и избришите записе помоћу Web API-ја

Основно ажурирање

Операција Метод URI JSON узорак
Основно ажурирање PATCH [URI портала]/_api/accounts(00000000-0000-0000-0000-000000000001) { "name": "Updated Sample Account ", "creditonhold": true, "address1_latitude": 47.639583, "description": "This is the updated description of the sample account", "revenue": 6000000, "accountcategorycode": 2 }

Ажурирање јединствене вредности својства

Операција Метод URI JSON узорак
Ажурирање јединствене вредности својства PUT [URI портала]/_api/accounts(00000000-0000-0000-0000-000000000001)/name {"value": "Updated Sample Account Name"}

Брисање или уклањање вредности поља

Операција Метод URI
Брисање или уклањање вредности поља DELETE [URI портала]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

Основно брисање

Операција Метод URI
Основно брисање DELETE [URI портала]/_api/accounts(00000000-0000-0000-0000-000000000001)

Придруживање и раздруживање табела помоћу Web API-ја

Додајте референцу на својство навигације са вредностима из колекције

Операција Метод URI JSON узорак
Додајте референцу на својство навигације са вредностима из колекције POST [URI портала]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref {"@odata.id":"[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)"}

Уклањање референце на табелу

Операција Метод URI
Уклањање референце на табелу DELETE [URI портала]/_api/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=[Portal URI]/_api/opportunities(00000000-0000-0000-0000-000000000001)

Уклоните референцу на табелу за својство навигације са једном вредношћу

За својство навигације са једном вредношћу уклоните параметар ниске упита $id.

Операција Метод URI
Уклоните референцу на табелу за својство навигације са једном вредношћу DELETE [URI портала]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref

Промена референце у својству навигације са једном вредношћу

Операција Метод URI JSON узорак
Промена референце у својству навигације са једном вредношћу PUT [URI портала]/_api/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref {"@odata.id":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Повезивање табела при креирању

Нове табеле се могу креирати коришћењем релација помоћу дубоког уметања.

Повезивање табела при ажурирању помоћу својства навигације са једном вредношћу

Табеле при ажурирању можете да повежете користећи исту поруку описану у одељку Основно ажурирање, раније у овој теми, али морате користити анотацију @odata.bind за подешавање вредности својства навигације са једном вредношћу. Следећи пример мења пословни контакт који је повезан са могућношћу за пословање коришћењем својства навигације са једном вредношћу customerid_account.

Повезивање табела при ажурирању помоћу својства навигације са једном вредношћу

Операција Метод URI JSON узорак
Повезивање табела при ажурирању помоћу својства навигације са једном вредношћу PATCH [URI портала]/_api/opportunities(00000000-0000-0000-0000-000000000001) {"customerid_account@odata.bind":"[Portal URI]/_api/accounts(00000000-0000-0000-0000-000000000002)"}

Web API AJAX примери

Овај пример показује како да креирате, ажурирате и избришете записе табеле користећи асинхрони JavaScript и XML (AJAX).

AJAX функција оквира

	(function(webapi, $){
		function safeAjax(ajaxOptions) {
			var deferredAjax = $.Deferred();
	
			shell.getTokenDeferred().done(function (token) {
				// add headers for AJAX
				if (!ajaxOptions.headers) {
					$.extend(ajaxOptions, {
						headers: {
							"__RequestVerificationToken": token
						}
					}); 
				} else {
					ajaxOptions.headers["__RequestVerificationToken"] = token;
				}
				$.ajax(ajaxOptions)
					.done(function(data, textStatus, jqXHR) {
						validateLoginSession(data, textStatus, jqXHR, deferredAjax.resolve);
					}).fail(deferredAjax.reject); //AJAX
			}).fail(function () {
				deferredAjax.rejectWith(this, arguments); // on token failure pass the token AJAX and args
			});
	
			return deferredAjax.promise();	
		}
		webapi.safeAjax = safeAjax;
	})(window.webapi = window.webapi || {}, jQuery)

Направи

	webapi.safeAjax({
		type: "POST",
		url: "/_api/accounts",
		contentType: "application/json",
		data: JSON.stringify({
			"name": "Sample Account"
		}),
		success: function (res, status, xhr) {
      //print id of newly created table record
			console.log("entityID: "+ xhr.getResponseHeader("entityid"))
		}
	});

Ажурирање

  webapi.safeAjax({
    type: "PATCH",
    url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
    contentType: "application/json",
    data: JSON.stringify({
      "name": "Sample Account - Updated"
    }),
    success: function (res) {
      console.log(res);
    }
  });

Избриши

	webapi.safeAjax({
		type: "DELETE",
		url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
		contentType: "application/json",
		success: function (res) {
			console.log(res);
		}
  });

Повежи

Следећи пример ће доделити постојећи контакт као примарни контакт за постојећи пословни контакт.

var record = {};
record[primarycontactid@odata.bind] = "/contacts(00000000-0000-0000-0000-000000000002)"; 

webapi.safeAjax({
  type: "PATCH",
  contentType: "application/json",
  url: "/_api/accounts(00000000-0000-0000-0000-000000000001)",
  data: JSON.stringify(record),
    success: function (data, textStatus, xhr) {
      console.log("Record updated");
    }
});

Следећи корак

Како : Користите портал Веб АПИ