다음은 예시 검색 요청입니다.
위 예시에서 엔드포인트는 소스 코드로, API 요청을 사용자 데이터 객체를 조작하도록 특별히 설계된 동작으로 제한합니다.
위 예시에서 행동은 Search입니다. 검색은 특정 필터 집합을 충족하는 엔드포인트에서 데이터를 얻는 데 사용됩니다.
{키값}.
action=search&args=[{"full_name":"Steve Joe"}] 는 "full_name" (키)가 "Steve Joe" (값)인 레코드만 반환합니다. Key:Value 구조에 맞고 쉼표로 구분되는 필터는 여러 개 사용할 수 있습니다.API 검색 요청에 필터 값을 추가할 때, 텍스트 문자열은 따옴표 안에 있어야 합니다.
API 엔드포인트 검색 동작은 Minitab Connect 간단한 쿼리로 제한됩니다. 복합 검색 요청은 서로 다른 키에 대해 이루어져야 합니다. 예: {"A":"밥"},{"B":"테스트"}. 같은 검색 요청에서 키를 두 번 쿼리하면, 두 번째 조건에만 맞는 모든 결과가 포함된 응답이 나옵니다. 단일 키에 대한 복잡한 쿼리는 소스 인터페이스 엔드포인트를 통해 js_filter을 통해 가능합니다.
모든 성공적인 버전 3 API 요청은 JSON 객체 형태로 데이터를 반환합니다. 이 예시에서는 간단한 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 요청임을 명시합니다.?apikey=4535464564474127781 2&action=search 이 동작은 검색 매개변수를 결정하는 필터 배열을 수용하도록 시스템을 구성합니다.
이 구성 변수는 API 키와 앰퍼샌드(&)로 구분됩니다. 첫 번째 변수를 제외한 모든 변수는 앰퍼샌드로 앞에 붙습니다.
&args=[{"full_name":"Steve Joe"}] 필터 배열은 시스템에 Userdata 객체를 검색하여 속성이 full_name "Steve Joe"와 같은, 모든 객체를 반환하도록 지시합니다.API 요청에서 받는 응답은 "Steve" 값을 가진 모든 사용자 데이터 객체를 포함하는 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}]"}
이 주제는 API 버전 3 검색 요청을 필터 배열을 구성하여 원하는 엔드포인트의 GUID를 받는 과정을 설명합니다. 또한 특정 엔드포인트에서 필터링할 수 있는 속성을 결정하는 방법도 다룹니다.
각 Minitab Connect 객체는 필터 배열을 사용해 탐색할 수 있는 대응하는 엔드포인트를 가지고 있습니다. 특정 ID를 식별하는 첫 단계는 API 검색 요청에서 어떤 엔드포인트를 사용해야 하는지 결정하는 것입니다. 엔드포인트에 대한 더 많은 정보와 현재 모든 엔드포인트 목록은 에서 확인할 The Minitab Connect API수 있습니다. 필요한 엔드포인트가 확인되면 다음 단계는 검색할 수 있는 속성 목록을 요청하는 것입니다.
(이 글에서는 '사용자' 엔드포인트를 사용할 것입니다.)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는 시스템이 검색 매개변수를 결정하는 필터 배열을 수용하도록 설정합니다. 동작 앞에는 앰퍼샌드(&)가 붙어 있다는 점에 유의하세요. 첫 번째 변수를 제외한 모든 변수는 앰퍼샌드로 앞에 붙어 있음을 기억하세요.
이 시점에서 필터 배열을 만들 수 있습니다. 우리가 가진 정보에 따라 필터 배열을 구성할 때 다양한 속성을 사용합니다. 다음과 같은 정보를 알고 있다고 가정해 봅시다:
이 정보와 사용자 엔드포인트에 대한 속성 목록을 바탕으로 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가 포함될 것입니다.