상업용 마켓플레이스를 위한 프로그램 방식의 접근 방식
이 다이어그램은 새 보고서 템플릿을 만들고, 사용자 지정 보고서를 예약하고, 실패 데이터를 검색하는 데 사용되는 API 호출 패턴을 보여 줍니다.
이 목록은 그림 1에 대한 자세한 내용을 제공합니다.
- 클라이언트 애플리케이션은 보고서 쿼리 만들기 API호출하여 사용자 지정 보고서 스키마/템플릿을 정의할 수 있습니다. 또는 시스템 쿼리 목록에서 보고서 템플릿(
QueryId
)을 사용할 수 있습니다. - 성공하면 보고서 템플릿 만들기 API는
QueryId
반환합니다. - 그런 다음 클라이언트 애플리케이션은 보고서 시작 날짜, 반복 간격, 되풀이 및 선택적 콜백 URI와 함께
QueryID
사용하여 보고서 만들기 API 호출합니다. - 성공하면 보고서 만들기 API
ReportID
반환합니다. - 클라이언트 애플리케이션은 보고서 데이터를 다운로드할 준비가 되는 즉시 콜백 URI에서 알림을 받습니다.
- 그런 다음 클라이언트 애플리케이션은 보고서 실행 가져오기 API 사용하여
Report ID
및 날짜 범위로 보고서의 상태를 쿼리합니다. - 성공하면 보고서 다운로드 링크가 반환되고 애플리케이션에서 데이터 다운로드를 시작할 수 있습니다.
보고서 쿼리 언어 사양
보고서를 만드는 데 사용할 수 있는 시스템 쿼리를 제공하지만 비즈니스 요구 사항에 따라 사용자 고유의 쿼리를 만들 수도 있습니다. 사용자 지정 쿼리에 대한 자세한 내용은 사용자 지정 쿼리 사양참조하세요.
보고서 쿼리 API 만들기
이 API는 열 및 메트릭을 내보내야 하는 데이터 세트를 정의하는 사용자 지정 쿼리를 만드는 데 도움이 됩니다. API는 비즈니스 요구 사항에 따라 새 보고 템플릿을 만들 수 있는 유연성을 제공합니다.
시스템의 제공된 쿼리를 사용할 수도 있습니다. 사용자 지정 보고서 템플릿이 필요하지 않은 경우 제공하는 시스템 쿼리의 QueryIds 사용하여 보고서 만들기 API 직접 호출할 수 있습니다.
다음 예제에서는 사용자 지정 쿼리를 만들어 지난 달의 ISVUsage 데이터 세트에서 유료 SKU 대한 정규화된 사용량 및 예상 재무 요금을 가져오는 방법을 보여 줍니다.
요청 구문
메서드 | 요청 URI |
---|---|
올리기 | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledQueries |
요청 헤더
머리글 | 유형 | 묘사 |
---|---|---|
권한 부여 | 문자열 | 필수. Microsoft Entra 액세스 토큰입니다. 형식은 Bearer <token> 입니다. |
Content-Type | string |
application/JSON |
Path 매개 변수
없음
Query 매개 변수
없음
요청 페이로드 예제
{
"Name": "ISVUsageQuery",
"Description": "Normalized Usage and Estimated Financial Charges for PAID SKUs",
"Query": "SELECT UsageDate, NormalizedUsage, EstimatedExtendedChargePC FROM ISVUsage WHERE SKUBillingType = 'Paid' ORDER BY UsageDate DESC TIMESPAN LAST_MONTH"
}
용어집
이 표에서는 요청 페이로드의 요소에 대한 주요 정의를 제공합니다.
매개 변수 | 필수 | 묘사 | 허용되는 값 |
---|---|---|---|
Name |
예 | 쿼리의 사용자 친화적인 이름 | 문자열 |
Description |
아니요 | 만든 쿼리에 대한 설명 | 문자열 |
Query |
예 | 비즈니스 필요에 따라 문자열 쿼리 | 문자열 |
샘플 응답
응답 페이로드는 다음과 같이 구성됩니다.
응답 코드: 200, 400, 401, 403, 500
응답 페이로드 예제:
{
"value": [
{
"queryId": "78be43f2-e35f-491a-8cd5-78fe14194f9c",
"name": " ISVUsageQuery",
"description": "Normalized Usage and Estimated Financial Charges for PAID SKUs",
"query": " SELECT UsageDate, NormalizedUsage, EstimatedExtendedChargePC FROM ISVUsage WHERE SKUBillingType = 'Paid' ORDER BY UsageDate DESC TIMESPAN LAST_MONTH",
"type": "userDefined",
"user": "142344300",
"createdTime": "2024-01-06T05:38:34Z"
}
],
"totalCount": 1,
"message": "Query created successfully",
"statusCode": 200
}
용어집
이 표에서는 응답에 있는 요소의 주요 정의를 제공합니다.
매개 변수 | 묘사 |
---|---|
QueryId |
만든 쿼리의 UUID(범용 고유 식별자) |
Name |
쿼리를 만드는 동안 요청 페이로드에 제공된 이름 |
Description |
쿼리를 만드는 동안 요청 페이로드에 제공된 설명 |
Query |
쿼리를 만드는 동안 요청 페이로드에 제공된 사용자 지정 보고서 쿼리 |
Type |
수동으로 만든 쿼리에 대해 userDefined 으로 설정 |
User |
쿼리를 만드는 데 사용되는 사용자 ID |
CreatedTime |
쿼리를 만든 UTC 시간입니다. 형식: yyyy-MM-ddTHH:mm:ssZ |
TotalCount |
값 배열의 레코드 수 |
StatusCode |
결과 코드 가능한 값은 200, 400, 401, 403, 500입니다. |
message |
API 실행의 상태 메시지 |
보고서 API 만들기
사용자 지정 보고서 템플릿을 성공적으로 만들고 보고서 쿼리 만들기 응답의 일부로QueryID
수신할 때 이 API를 호출하여 정기적으로 쿼리를 실행하도록 예약할 수 있습니다. 보고서를 배달할 빈도 및 일정을 설정할 수 있습니다. 제공하는 시스템 쿼리의 경우 QueryId사용하여 보고서 만들기 API를 호출할 수도 있습니다.
요청 구문
메서드 | 요청 URI |
---|---|
올리기 | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport |
요청 헤더
머리글 | 유형 | 묘사 |
---|---|---|
권한 부여 | 문자열 | 필수. Microsoft Entra 액세스 토큰입니다. 형식은 Bearer <token> 입니다. |
콘텐츠 형식 | 문자열 | application/JSON |
Path 매개 변수
없음
Query 매개 변수
없음
요청 페이로드 예제
{
"ReportName": "ISVUsageReport",
"Description": "Normalized Usage and Estimated Financial Charges for PAID SKUs",
"QueryId": "78be43f2-e35f-491a-8cd5-78fe14194f9c ",
"StartTime": "2021-01-06T19:00:00Z ",
"executeNow": false,
"RecurrenceInterval": 48,
"RecurrenceCount": 20,
"Format": "csv",
"CallbackUrl": "https://<SampleCallbackUrl>"
"callbackMethod": "GET",
}
용어집
이 표에서는 요청 페이로드의 요소에 대한 주요 정의를 제공합니다.
매개 변수 | 필수 | 묘사 | 허용되는 값 |
---|---|---|---|
ReportName |
예 | 보고서에 할당된 사용자 친화적인 이름 | 문자열 |
Description |
아니요 | 만든 보고서에 대한 설명 | 문자열 |
QueryId |
예 | 보고서 생성에 사용해야 하는 쿼리 ID | 문자열 |
StartTime |
예 | 보고서 생성이 시작되는 UTC 타임스탬프입니다. 형식은 yyyy-MM-ddTHH:mm:ssZ여야 합니다. | 문자열 |
ExecuteNow |
아니요 | 이 매개 변수는 한 번만 실행되는 보고서를 만드는 데 사용해야 합니다.
StartTime , RecurrenceInterval , RecurrenceCount 및 EndTime 는 이것이 true 로 설정되면 무시됩니다. |
부울 |
QueryStartTime |
아니요 | 필요에 따라 데이터를 추출하는 쿼리의 시작 시간을 지정합니다. 이 매개 변수는 ExecuteNow true 설정된 일회성 실행 보고서에만 적용됩니다. 형식은 yyyy-MM-ddTHH:mm:ssZ여야 합니다. |
문자열로 타임스탬프 |
QueryEndTime |
아니요 | 필요에 따라 데이터를 추출하는 쿼리의 종료 시간을 지정합니다. 이 매개 변수는 ExecuteNow true 설정된 일회성 실행 보고서에만 적용됩니다. 형식은 yyyy-MM-ddTHH:mm:ssZ여야 합니다. |
문자열로 타임스탬프 |
RecurrenceInterval |
예 | 보고서를 생성해야 하는 시간 단위의 빈도입니다. 최소값은 1이고 최대값은 17520입니다. | 정수 |
RecurrenceCount |
예 | 생성할 보고서 수입니다. 제한은 되풀이 간격에 따라 달라집니다. | 정수 |
Format |
아니요 | 내보낸 파일의 파일 형식입니다. 기본 형식은 CSV입니다. | CSV/TSV |
CallbackUrl |
아니요 | 선택적으로 콜백 대상으로 구성할 수 있는 공개적으로 액세스할 수 있는 URL | 문자열 |
CallbackMethod |
아니요 | 콜백 URL로 구성할 수 있는 Get/Post 메서드 | GET/POST |
EndTime |
예 | 보고서 생성이 종료되는 UTC 타임스탬프입니다. 형식은 yyyy-MM-ddTHH:mm:ssZ여야 합니다. | 문자열 |
메모
보고서를 만드는 동안 EndTime
또는 RecurrenceInterval
및 RecurrenceCount
조합이 필수입니다.
샘플 응답
응답 페이로드는 다음과 같이 구성됩니다.
응답 코드: 200, 400, 401, 403, 404, 500
응답 페이로드:
{
"Value": [
{
"reportId": "72fa95ab-35f5-4d44-a1ee-503abbc88003",
"reportName": "ISVUsageReport",
"description": "Normalized Usage and Estimated Financial Charges for PAID SKUs",
"queryId": "78be43f2-e35f-491a-8cd5-78fe14194f9c",
"query": "SELECT UsageDate, NormalizedUsage, EstimatedExtendedChargePC FROM ISVUsage WHERE SKUBillingType = 'Paid' ORDER BY UsageDate DESC TIMESPAN LAST_MONTH",
"user": "142344300",
"createdTime": "2024-01-06T05:46:00Z",
"modifiedTime": null,
"startTime": "2024-01-06T19:00:00Z",
"reportStatus": "Active",
"recurrenceInterval": 48,
"recurrenceCount": 20,
"callbackUrl": "https://<SampleCallbackUrl>",
"callbackMethod": "GET",
"format": "csv"
}
],
"TotalCount": 1,
"Message": "Report created successfully",
"StatusCode": 200
}
용어집
이 표에서는 응답에 있는 요소의 주요 정의를 제공합니다.
매개 변수 | 설명 |
---|---|
ReportId |
만든 보고서의 UUID(범용 고유 식별자) |
ReportName |
보고서를 만드는 동안 요청 페이로드에 제공된 이름 |
Description |
보고서를 만드는 동안 요청 페이로드에 제공된 설명 |
QueryId |
보고서를 만드는 동안 요청 페이로드에 제공된 쿼리 ID |
Query |
이 보고서에 대해 실행될 쿼리 텍스트 |
User |
보고서를 만드는 데 사용되는 사용자 ID |
CreatedTime |
보고서가 생성된 UTC 시간의 형식: yyyy-MM-ddTHH:mm:ssZ |
ModifiedTime |
보고서가 마지막으로 수정된 UTC 시간: yyyy-MM-ddTHH:mm:ssZ |
ExecuteNow |
보고서를 만드는 동안 요청 페이로드에 제공된 ExecuteNow 매개 변수 |
queryStartTime |
보고서를 만드는 동안 요청 페이로드에 제공된 쿼리 시작 시간입니다. 이는 ExecuteNow "True"로 설정된 경우에만 적용됩니다. |
queryEndTime |
보고서를 만드는 동안 요청 페이로드에 제공된 쿼리 종료 시간입니다. 이는 ExecuteNow "True"로 설정된 경우에만 적용됩니다. |
StartTime |
보고서를 만드는 동안 요청 페이로드에 제공된 시작 시간 |
ReportStatus |
보고서 실행의 상태입니다. 가능한 값은 일시 중지, 활성, 및 비활성입니다. |
RecurrenceInterval |
보고서를 만드는 동안 요청 페이로드에 제공된 되풀이 간격 |
RecurrenceCount |
보고서의 나머지 되풀이 횟수 |
CallbackUrl |
보고서를 만드는 동안 요청 페이로드에 제공된 콜백 URL |
CallbackMethod |
보고서를 만드는 동안 요청 페이로드에 제공된 콜백 메서드 |
Format |
보고서를 만드는 동안 요청 페이로드에 제공된 보고서 파일의 형식 |
EndTime |
보고서를 만드는 동안 요청 페이로드에 제공된 종료 시간입니다. 이는 ExecuteNow "True"로 설정된 경우에만 적용됩니다. |
TotalRecurrenceCount |
보고서 생성 시 요청 페이로드에 제공된 RecurrenceCount |
nextExecutionStartTime |
다음 보고서 실행이 시작되는 UTC 타임스탬프 |
TotalCount |
값 배열의 레코드 수 |
StatusCode |
결과 코드입니다. 가능한 값은 200, 400, 401, 403, 500입니다. |
message |
API 실행의 상태 메시지 |
보고서 실행 API 가져오기
이 메서드를 사용하여 ReportId
을 받은 보고서 만들기 API에서 보고서 실행 상태를 쿼리할 수 있습니다. 보고서를 다운로드할 준비가 되면 이 메서드는 보고서 다운로드 링크를 반환합니다. 그렇지 않으면 메서드가 상태를 반환합니다. 이 API를 사용하여 지정된 보고서에 대해 발생한 모든 실행을 가져올 수도 있습니다.
중요하다
이 API에는 executionStatus=Completed
및 getLatestExecution=true
대해 설정된 기본 쿼리 매개 변수가 있습니다. 따라서 보고서를 처음 성공적으로 실행하기 전에 API를 호출하면 404가 반환됩니다. 보류 중인 작업은 executionStatus=Pending
을 설정하면 가져올 수 있습니다.
요청 구문
메서드 | 요청 URI |
---|---|
가져오기 | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport/execution/{reportId}?executionId={executionId}&executionStatus={executionStatus}&getLatestExecution={getLatestExecution} |
요청 헤더
머리글 | 종류 | 설명 |
---|---|---|
권한 부여 | 문자열 | 필수. Microsoft Entra 액세스 토큰입니다. 형식은 Bearer <token> 입니다. |
콘텐츠 형식 | 문자열 | application/json |
Path 매개 변수
없음
Query 매개 변수
매개 변수 이름 | 필수 | 유형 | 묘사 |
---|---|---|---|
reportId |
예 | 문자열 | 이 인수에 지정된 reportId 있는 보고서만 실행 세부 정보를 가져오기 위해 필터링합니다. |
executionId |
아니요 | 문자열 | 필터를 사용하여 이 인수에 지정된 executionId 있는 보고서만 세부 정보를 가져옵니다. 여러 executionIds 세미콜론 ";"으로 구분하여 지정할 수 있습니다. |
executionStatus |
아니요 | string/enum | 필터를 사용하여 이 인수에 지정된 executionStatus 있는 보고서만 세부 정보를 가져옵니다.유효한 값은 Pending , Running , Paused 및 Completed 기본값은 Completed . |
getLatestExecution |
아니요 | 불리언 | API는 최신 보고서 실행에 대한 세부 정보를 반환합니다. 기본적으로 이 매개 변수는 true 으로 설정되어 있습니다. 이 매개 변수의 값을 false 전달하도록 선택하면 API는 지난 90일 실행 인스턴스를 반환합니다. |
요청 페이로드
없음
샘플 응답
응답 페이로드는 다음과 같이 구성됩니다.
응답 코드: 200, 400, 401, 403, 404, 500
응답 페이로드 예제:
{
"value": [
{
"executionId": "a0bd78ad-1a05-40fa-8847-8968b718d00f",
"reportId": "72fa95ab-35f5-4d44-a1ee-503abbc88003",
"recurrenceInterval": 4,
"recurrenceCount": 10,
"callbackUrl": null,
"format": "csv",
"executionStatus": "Completed",
"reportAccessSecureLink": "https://<path to report for download>",
"reportExpiryTime": null,
"reportGeneratedTime": "2021-01-13T14:40:46Z"
}
],
"totalCount": 1,
"message": null,
"statusCode": 200
}
보고서 실행이 완료되면 실행 상태 Completed
표시됩니다.
reportAccessSecureLink
URL을 선택하여 보고서를 다운로드할 수 있습니다.
용어집
응답의 요소에 대한 주요 정의입니다.
매개 변수 | 묘사 |
---|---|
ExecutionId |
실행 인스턴스의 UUID(범용 고유 식별자) |
ReportId |
실행 인스턴스와 연결된 보고서 ID |
RecurrenceInterval |
보고서를 만드는 동안 제공되는 되풀이 간격 |
RecurrenceCount |
보고서를 만드는 동안 제공된 되풀이 횟수 |
CallbackUrl |
실행 인스턴스와 연결된 콜백 URL |
CallbackMethod |
보고서를 만드는 동안 요청 페이로드에 제공된 콜백 메서드 |
Format |
실행이 끝날 때 생성된 파일의 형식 |
ExecutionStatus |
보고서 실행 인스턴스의 상태입니다. 유효한 값은 Pending , Running , Paused 및 Completed |
ReportLocation |
보고서가 다운로드되는 위치입니다. |
ReportAccessSecureLink |
보고서를 안전하게 액세스할 수 있는 링크 |
ReportExpiryTime |
보고서 링크가 만료되는 UTC 시간은 다음 형식으로 제공되어야 합니다: yyyy-MM-ddTHH:mm:ssZ |
ReportGeneratedTime |
보고서가 생성된 UTC 시간: yyyy-MM-ddTHH:mm:ssZ |
EndTime |
보고서를 만드는 동안 요청 페이로드에 제공된 종료 시간입니다. 이는 ExecuteNow "True"로 설정된 경우에만 적용됩니다. |
TotalRecurrenceCount |
보고서 작성 시 요청 페이로드에 제공된 RecurrenceCount |
nextExecutionStartTime |
다음 보고서 실행이 시작되는 UTC 타임스탬프 |
TotalCount |
값 배열의 데이터 세트 수 |
StatusCode |
결과 코드 가능한 값은 200, 400, 401, 403, 404 및 500입니다. |
message |
API 실행의 상태 메시지 |
Swagger API URL통해 API를 사용해 볼 수 있습니다.