다음을 통해 공유


포털 웹 API 쓰기, 업데이트, 삭제 작업 사용

참고

2022년 10월 12일부터 Power Apps 포털이 Power Pages가 됩니다. 추가 정보: Microsoft Power Pages는 이제 일반적으로 사용할 수 있습니다(블로그)
곧 Power Apps 포털 설명서를 마이그레이션하고 Power Pages 설명서와 병합할 예정입니다.

포털에서 사용 가능한 웹 API 작업을 수행할 수 있습니다. 웹 API 작업은 HTTP 요청 및 응답으로 구성됩니다. 이 문서에서는 HTTP 요청에서 사용할 수 있는 샘플 읽기, 업데이트, 삭제 작업, 메서드, URI 및 샘플 JSON을 제공합니다.

중요

  • 이 기능이 작동하려면 포털 버전이 9.3.3.x 이상이어야 합니다.

필수 항목

  • 웹 API 작업을 위한 테이블 및 필드를 활성화합니다. 추가 정보: 웹 API에 대한 사이트 설정

  • 포털 웹 API는 테이블 레코드에 액세스하고 연결된 웹 역할을 통해 사용자에게 부여된 테이블 권한을 따릅니다. 올바른 테이블 권한을 구성했는지 확인하십시오. 추가 정보: 웹 역할 만들기

테이블에 레코드 만들기

참고

포털 웹 API를 사용하여 Dataverse 테이블을 참조할 때 EntitySetName을 사용해야 합니다. 예를 들어 account 테이블에 액세스하려면 코드 구문이 accounts의 EntitySetName을 사용합니다.

기본 만들기

작업 메서드 URI JSON 샘플
기본 만들기 POST [포털 URI]/_api/accounts {"name":"샘플 거래처"}

한 번의 작업으로 관련 테이블 레코드를 만들기 위한 샘플 JSON

예를 들어 계정 테이블 집합에 게시된 다음 요청 본문은 계정 생성과 관련하여 계정을 비롯해 총 4개의 새 테이블을 생성합니다.

  • 단일 값 탐색 속성 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" }
      ]
  }
 ]
}

생성 시 테이블 레코드 연결

Operation Method URI JSON 샘플
생성 시 테이블 레코드 연결 POST [포털 URI]/_api/accounts {"name":"Sample Account","primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"}

웹 API를 통해 주석을 만들기 위한 샘플 JSON

{
    "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"}

필드 값 삭제 또는 지우기

Operation Method URI
필드 값 삭제 또는 지우기 DELETE [포털 URI]/_api/accounts(00000000-0000-0000-0000-000000000001)/description

기본 삭제

작업 방법 URI
기본 삭제 Delete [포털 URI]/_api/accounts(00000000-0000-0000-0000-000000000001)

웹 API를 사용하여 테이블 연결 및 연결 해제

컬렉션 값 탐색 속성에 대한 참조를 추가합니다.

작업 방법 URI JSON 샘플
컬렉션 값 탐색 속성에 대한 참조를 추가합니다. 게시물 [포털 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=[포털 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 샘플

이 샘플은 AJAX(Asynchronous JavaScript and XML)를 사용하여 테이블 레코드를 작성, 업데이트 및 삭제하는 방법을 보여줍니다.

래퍼 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);
    }
  });

Delete

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

다음 단계

자습서: 포털 웹 API 사용

참고 항목:

포털 웹 API 개요
포털은 웹 API를 사용하여 작업을 읽습니다.

참고

귀사의 설명서 언어 기본 설정에 대해 말씀해 주시겠습니까? 간단한 설문 조사에 응해주세요. (이 설문 조사는 영어로 되어 있습니다.)

이 설문 조사는 약 7분 정도 걸립니다. 개인 데이터는 수집되지 않습니다(개인정보처리방침).