검색 작업을 통해 필터링된 원하는 데이터를 어떤 엔드포인트에 쿼리할 수 있습니다. 사용자는 응답 범위를 조절하는 하나 이상의 필터를 추가하여 응답을 조작할 수 있습니다. API 요청에서 사용할 수 있는 필터 수에는 제한이 없습니다.

버전 3 API 검색 요청의 세부 정보

다음은 예시 검색 요청입니다.

종착점
요청의 객체 또는 객체들의 집합을 나타냅니다.

위 예시에서 엔드포인트는 소스 코드로, API 요청을 사용자 데이터 객체를 조작하도록 특별히 설계된 동작으로 제한합니다.

작업
지정된 엔드포인트에 대해 어떤 행동을 취할지 지정합니다.

위 예시에서 행동은 Search입니다. 검색은 특정 필터 집합을 충족하는 엔드포인트에서 데이터를 얻는 데 사용됩니다.

필터 배열
API 요청에 의해 데이터 객체가 반환되기 전에 충족해야 하는 필수 매개변수 목록을 담고 있습니다. 검색은 배열로 포맷된 무한한 수의 필터를 가질 수 있습니다. 배열은 특정 작업을 수행하기 위해 상호 관련된 객체나 항목들의 배열로 정의됩니다.
버전 3 API에서 배열은 다음과 같이 구조화됩니다: {키값}.
  • : 이중 따옴표(")로 감싸야 하는 탐색 속성"입니다.
  • 값(V): 키와 맞춰질 줄 또는 숫자. 예를 들어: action=search&args=[{"full_name":"Steve Joe"}]"full_name" (키)가 "Steve Joe" (값)인 레코드만 반환합니다. Key:Value 구조에 맞고 쉼표로 구분되는 필터는 여러 개 사용할 수 있습니다.
참고

API 검색 요청에 필터 값을 추가할 때, 텍스트 문자열은 따옴표 안에 있어야 합니다.

API 엔드포인트 검색 동작은 Minitab Connect 간단한 쿼리로 제한됩니다. 복합 검색 요청은 서로 다른 키에 대해 이루어져야 합니다. 예: {"A":"밥"},{"B":"테스트"}. 같은 검색 요청에서 키를 두 번 쿼리하면, 두 번째 조건에만 맞는 모든 결과가 포함된 응답이 나옵니다. 단일 키에 대한 복잡한 쿼리는 소스 인터페이스 엔드포인트를 통해 js_filter을 통해 가능합니다.

API 응답 데이터

모든 성공적인 버전 3 API 요청은 JSON 객체 형태로 데이터를 반환합니다. 이 예시에서는 간단한 API 응답에 초점을 맞추겠습니다.

버전 3 API 요청

사용할 API 요청은 위의 '예제 API 요청'입니다.1 예시의 세부 설명은 다음과 같습니다:

https://connect.minitab.com/api/3/User?apikey=45354645654474127781&action=search&args=[{"full_name":"스티브 조"}]

  • 이 요청은 https://connect.minitab.com/ 시스템에 연결되며, /api/3가 포함된 버전 3 API 요청임을 명시합니다.
  • 엔드포인트 /사용자는 API 요청의 핵심이며, 그 이후의 모든 요청은 이를 가리킵니다. 이 예시에서는 사용자 엔드포인트에 대한 접근이 요청됩니다.
  • 접근을 부여하기 전에 시스템은 요청이 권한 있는 출처에서 온 것인지 확인해야 합니다. 요청은 서버가 인증할 수 있는 자격 증명을 제공합니다 ?apikey=4535464564474127781 2
  • 이 변수는 요청 URL의 첫 번째 변수이기 때문에 앞에 물음표(?)가 붙어야 합니다.
  • 인증이 통과되면 시스템은 동작으로 이동합니다. &action=search 이 동작은 검색 매개변수를 결정하는 필터 배열을 수용하도록 시스템을 구성합니다.
    참고

    이 구성 변수는 API 키와 앰퍼샌드(&)로 구분됩니다. 첫 번째 변수를 제외한 모든 변수는 앰퍼샌드로 앞에 붙습니다.

  • 이 시점에서 필터 배열이 읽힙니다. &args=[{"full_name":"Steve Joe"}] 필터 배열은 시스템에 Userdata 객체를 검색하여 속성이 full_name "Steve Joe"와 같은, 모든 객체를 반환하도록 지시합니다.
  • 시스템은 모든 결과를 포함하는 JSON 객체를 반환합니다.

응답 객체

API 요청에서 받는 응답은 "Steve" 값을 가진 모든 사용자 데이터 객체를 포함하는 JSON 객체입니다. 모든 응답 객체는 동일한 기본 구조를 가지며, JSON 형식의 문자열로 반환됩니다.

JSON 형식화된 문자열

{"data":[{"type":"User","id":"999","attributes":{"user_id":"999","user_guid":"558877tu8822","full_name:"Steve
	 Joe","email":"Steve_Smith@minitab.com","phone":"","user_type_id":"66","cust_id":"1","adobe_key":null,"login":null,"theme":"","last_active":null,"is_active":"1","exceptions":[],"notes":"","two_factor":"0","auth_token":null,"expires":null,"password_history":null,"access_type":"40","notification_preference":"noti","primary_id":"user_id","primary_guid":"user_guid"},"meta":{"valid":true,"getters":{"EXCEPTIONSON":"getExceptionsOn","FULLUSERLIST":"getFullUserList","CUSTOMERUSERLIST":"getCustomerUserList","NOTIFICATIONS":"getNotifications","DBSTATUS":"getDBStatus","DBTABLES":"getDBTables","DBVIEWS":"getDBViews","JOBS":"getJobs","UIREFRESH":"getUIRefresh","USERGUID":"getUserGUID","USERID":"getUserID","NAME":"getName","FULLNAME":"getFullName","FNAME":"getFName","MNAME":"getMName","LNAME":"getLName","EMAIL":"getEmail","PHONE":"getPhone","ADOBEKEY":"getAdobeKey","LOGIN":"getLogin","CUSTID":"getCustId","USERTYPEID":"getUserTypeID","THEME":"getTheme","LASTACTIVE":"getLastActive","ISACTIVE":"getIsActive","EXCEPTIONS":"getExceptions","NOTES":"getNotes","TWOFACTOR":"getTwoFactor","AUTHTOKEN":"getAuthToken","EXPIRES":"getExpires","PASSWORDHISTORY":"getPasswordHistory","CUSTOMERSTATS":"getCustomerStats","RELATIVES":"getRelatives","ACCESSTYPE":"getAccessType","NOTIFICATIONPREFERENCE":"getNotificationPreference","ACTIVEUSERS":"getActiveUsers","CONTYPE":"getConType","ID":"getID","PRIMARYID":"getPrimaryID","GUID":"getGUID","PRIMARYGUID":"getPrimaryGUID","PROPERTIES":"getProperties"},"setters":{"CDBO":"setCDBO","USERGUID":"setUserGUID","FNAME":"setFName","MNAME":"setMName","LNAME":"setLName","EMAIL":"setEmail","PHONE":"setPhone","ADOBEKEY":"setAdobeKey","LOGIN":"setLogin","CUSTID":"setCustID","USERTYPEID":"setUserTypeID","THEME":"setTheme","LASTACTIVE":"setLastActive","ISACTIVE":"setIsActive","PASSWORD":"setPassword","NOTES":"setNotes","TWOFACTOR":"setTwofactor","AUTHTOKEN":"setAuthToken","EXPIRES":"setExpires","PASSWORDHISTORY":"setPasswordHistory","ACCESSTYPE":"setAccessType","NOTIFICATIONPREFERENCE":"setNotificationPreference","ID":"setID","DBO":"setDBO"},"actions":{"load":{"parameters":[{"name":"args"}]},"loadExceptions":{"parameters":[]},"addException":{"parameters":[{"name":"args"}]},"updateException":{"parameters":[{"name":"args"}]},"removeException":{"parameters":[{"name":"args"}]},"clearExceptions":{"parameters":[]},"search":{"parameters":[{"name":"args"}]},"remove":{"parameters":[]},"checkPassword":{"parameters":[{"name":"password"}]},"checkPasswordHistory":{"parameters":[{"name":"password"}]},"runDBSQL":{"parameters":[{"name":"args"}]},"removeUIRefresh":{"parameters":[{"name":"args"}]},"createUIRefresh":{"parameters":[{"name":"args"}]},"systemLog":{"parameters":[{"name":"args"}]},"checkLogIn":{"parameters":[{"name":"args"}]},"logIn":{"parameters":[{"name":"args"}]},"removeUser":{"parameters":[]},"whois":{"parameters":[{"name":"auth_token"}]},"auth":{"parameters":[{"name":"args"}]},"commit":{"parameters":[]},"purge":{"parameters":[{"name":"args"}]},"checkRequirements":{"parameters":[{"name":"password"}]},"checkHistory":{"parameters":[{"name":"password"},{"name":"limt"}]},"grantAccess":{"parameters":[{"name":"args"}]},"removeAccess":{"parameters":[{"name":"args"}]},"notify":{"parameters":[{"name":"args"}]},"sharableList":{"parameters":[]},"slackAccounts":{"parameters":[]},"sendSupportRequest":{"parameters":[{"name":"args"}]},"downloadActiveUsers":{"parameters":[{"name":"args"}]},"message":{"parameters":[]},"beginTransaction":{"parameters":[]},"commitTransaction":{"parameters":[]},"rollbackTransaction":{"parameters":[]},"restrictCustomer":{"parameters":[]},"permissionRequired":{"parameters":[{"name":"args"}]}}}}],"meta":{"data_type":"array"},"self":"https:\/\/connect.minitab.com\/api\/3\/User?apikey=5555888817ab43&action=search&args=[{%22full_name%22:%22Steve
	 Joe%22}]"} 
  

특정 엔드포인트 GUID 검색

이 주제는 API 버전 3 검색 요청을 필터 배열을 구성하여 원하는 엔드포인트의 GUID를 받는 과정을 설명합니다. 또한 특정 엔드포인트에서 필터링할 수 있는 속성을 결정하는 방법도 다룹니다.

어떤 엔드포인트를 검색해야 하는지 결정하세요

Minitab Connect 객체는 필터 배열을 사용해 탐색할 수 있는 대응하는 엔드포인트를 가지고 있습니다. 특정 ID를 식별하는 첫 단계는 API 검색 요청에서 어떤 엔드포인트를 사용해야 하는지 결정하는 것입니다. 엔드포인트에 대한 더 많은 정보와 현재 모든 엔드포인트 목록은 에서 확인할 The Minitab Connect API수 있습니다. 필요한 엔드포인트가 확인되면 다음 단계는 검색할 수 있는 속성 목록을 요청하는 것입니다.

(이 글에서는 '사용자' 엔드포인트를 사용할 것입니다.)

API 버전 3 요청을 실행하고 응답을 받아

API 요청에 필요한 모든 정보가 포함되어 있으면 요청을 실행할 수 있습니다. 모든 성공적인 버전 3 API 요청은 JSON 객체 형태로 데이터를 반환합니다. 요청에 엔드포인트 ID가 포함되어 있지 않기 때문에, JSON 응답에는 모든 NULL 데이터가 포함됩니다. 하지만 중요한 것은 데이터가 아닙니다; 이 예시에서 데이터 앞에 있는 속성의 이름이 우리가 찾는 것입니다. 이것이 종점 속성입니다. 다음은 예시 API 요청의 결과입니다:

{  
   "data":{  
      "type":"User",
      "attributes":{  
         "user_id":null,
         "user_guid":null,
         "full_name":null,
         "email":null,
         "phone":null,
         "user_type_id":null,
         "cust_id":null,
         "adobe_key":null,
         "login":null,
         "theme":null,
         "last_active":null,
         "is_active":null,
         "exceptions":null,
         "notes":null,
         "two_factor":null,
         "auth_token":null,
         "expires":null,
         "password_history":null,
         "access_type":null,
         "notification_preference":"noti",
         "primary_id":"user_id",
         "primary_guid":"user_guid"
      },
      "meta":{  }
   },
   "meta":{  },
   "self":"https:\/\/connect.minitab.com\/api\/3\/User?apikey=411412489453456345645"

검색에 사용할 수 있는 속성은 JSON 응답 객체 -> "data" -> "속성" 내에서 찾을 수 있습니다. 이 예시에서 사용자 엔드포인트를 사용하면 속성은 다음과 같습니다: user_id, user_guid, full_name, 이메일, 전화, user_type_id, cust_id, adobe_key, 로그인, last_active, is_active, 예외, 메모, two_factor, auth_token, 만료, password_history, access_type, notification_preference, primary_id, primary_guid. 이 속성들 중 하나 또는 전부는 필터 배열에서 특정 엔드포인트 ID를 정확히 지정하는 데 사용할 수 있습니다.

검색 동작과 필터 배열 생성

이제 원하는 엔드포인트 ID를 나타내는 모든 속성과 값을 포함하는 필터 배열을 포함해 검색 액션을 만드는 데 필요한 모든 정보를 획득했습니다. 이 동작 &action=search는 시스템이 검색 매개변수를 결정하는 필터 배열을 수용하도록 설정합니다. 동작 앞에는 앰퍼샌드(&)가 붙어 있다는 점에 유의하세요. 첫 번째 변수를 제외한 모든 변수는 앰퍼샌드로 앞에 붙어 있음을 기억하세요.

이 시점에서 필터 배열을 만들 수 있습니다. 우리가 가진 정보에 따라 필터 배열을 구성할 때 다양한 속성을 사용합니다. 다음과 같은 정보를 알고 있다고 가정해 봅시다:

  • 사용자 이름: 배리 조
  • 사용자는 활성화되어 있습니다
검색을 쉽게 하기 위해 여러 조건문을 사용할 수 있습니다. 다음은 비교를 위해 사용할 수 있는 조건문 목록입니다:
  • EQ (와 같음)
  • ne (와 같지 않음)
  • BW (처음 시작)
  • EW (끝음)
  • CN (포함)
  • BN (시작하지 않음)
  • 엔 (끝이 아님)
  • NC (포함 없음)
  • ([쉼표 구분 리스트]에서)
  • Ni ([쉼표 구분 목록]에 없음)
  • nu (NULL)
  • nn (NULL이 아님)
  • LT (적음)
  • le (보다 작거나 같음)
  • GT (크게)
  • GE (크거나 같음)

이 정보와 사용자 엔드포인트에 대한 속성 목록을 바탕으로 full_name, cust_id, is_active 속성이 필요하다고 판단합니다. 필터 배열은 다음과 같습니다:

&args=[{"full_name":["eq","Barry Joe"],"is_active":["eq","1"]}]

전체 API 버전 3 검색 요청은 다음과 같습니다:

https://connect.minitab.com/api/3/User?apikey=411412489453456345645&action=search&args=[{"full_name":["eq","Barry Joe"],"is_active":["eq","1"]}]

이 요청을 실행하면 단일 결과를 받습니다:

{  
   "data":{  
      "type":"User",
      "attributes":{  
         "user_id":17,
         "user_guid":"75647362",
         "full_name":"Barry Joe",
         "email":"barry.smith@tmmdata.com",
         "phone":"111-555-1312",
         "user_type_id":20,
         "cust_id":"52342321",
         "adobe_key":null,
         "login":null,
         "theme":"3c",
         "last_active":"2017.10.31 09:53:01",
         "is_active":1,
         "exceptions":null,
         "notes":null,
         "two_factor":null,
         "auth_token":null,
         "expires":null,
         "password_history":null,
         "access_type":50,
         "notification_preference":"noti",
         "primary_id":"user_id",
         "primary_guid":"user_guid"
      },
      "meta":{  }
   },
   "meta":{  },
   "self":"https:\/\/connect.minitab.com\/api\/3\/User?apikey=411412489453456345645"

엔드포인트 ID는 17입니다. 앞으로 이 사용자에게 영향을 미칠 API 버전 3 요청에는 이 ID가 포함될 것입니다.

1 예시 API 요청에는 시연 목적의 잘못된 API 키가 포함되어 있으며, 그대로 사용하면 오류가 발생합니다. 이건 보안 목적이에요. 유효한 API 키로 대체되어 유효한 API 응답을 생성했습니다.
2 제공되는 API 키는 시연 목적으로만 사용됩니다. 유효한 API 키가 제공되지 않으면 API 요청이 오류를 일으킵니다.