这里有一个示例搜索请求。
在上述示例中,端点是源端,限制了 API 请求的操作范围,仅限于专门设计用于操作用户数据对象的动作。
在上述例子中,动作是搜索。搜索用于从满足特定筛选条件的端点获取数据。
{关键值}。
action=search&args=[{“full_name”:“Steve Joe”}] 只返回“ full_name” (键) 为 “Steve Joe ”(值)的记录。只要符合Key:Value结构并用逗号分隔,就可以使用任意数量的滤镜。当你在 API 搜索请求中添加过滤值时,文本字符串必须置于引号内。
Minitab Connect API 端点搜索动作仅限于简单的查询。复合搜索请求必须针对不同的键。例如:{“A”:“Bob”},{“B”:“Test”}。在同一搜索请求中查询一次密钥两次,会得到包含所有仅符合第二个条件的结果的响应。通过源接口端点使用js_filter,可以对单个键进行复杂查询。
每一次成功的版本3 API请求都会以JSON对象的形式返回数据。在这个例子中,我们将重点介绍一个简单的API响应。
将使用的API请求是上面提到的“示例API请求”。1以下是该示例的分解:
https://connect.minitab.com/api/3/User?apikey=45354645654474127781&action=search&args=[{“full_name”:“史蒂夫·乔”}]
at https://connect.minitab.com/ ,并指定这是带有 /api/3的版本 3 API 请求。?apikey=4535464564474127781 2&action=搜索 此操作配置系统接受过滤数组,以确定搜索参数。
该配置变量与API密钥之间用一个&符号(&)分隔。除第一个变量外,所有变量前都加一个&符号。
&args=[{“full_name”:“Steve Joe”}] 过滤数组指示系统搜索 Userdata 对象,并返回所有属性为 full_name 且等于“Steve Joe”的对象。API请求收到的响应是一个JSON对象,包含所有属性为“fname”、值为“Steve”的用户数据对象。所有响应对象的基本结构相同,返回为 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” >- “attributes” 中找到。在本例中,使用用户端点,属性如下: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。