Aquí tienes un ejemplo de solicitud de búsqueda.
En el ejemplo anterior, el endpoint es source, lo que limita lo que se puede hacer con la petición de la API a acciones diseñadas específicamente para manipular objetos de datos de usuario.
En el ejemplo anterior, la acción es Buscar. La búsqueda se utiliza para obtener datos de un punto final que cumple un conjunto específico de filtros.
{ClaveValor}.
action=search&args=[{"full_name":"Steve Joe"}] solo devolvería registros donde "full_name" (Clave) es "Steve Joe" (Valor). Se pueden usar cualquier número de filtros siempre que encajen en la estructura clave:valor y estén separados por comas.Cuando añades valores de filtro a la solicitud de búsqueda de la API, las cadenas de texto deben estar dentro de comillas.
La Minitab Connect acción de búsqueda del endpoint API está limitada a consultas simples. Las solicitudes de búsqueda compuesta deben ser contra diferentes claves. Por ejemplo: {"A":"Bob"},{"B":"Prueba"}. Consultar una clave dos veces en la misma solicitud de búsqueda da como resultado una respuesta que contiene todos los resultados que solo coinciden con la segunda condición. Consultas complejas contra una sola clave son posibles a través del punto final de la interfaz de origen usando js_filter.
Cada solicitud exitosa de la API de la versión 3 devuelve datos en forma de objeto JSON. En este ejemplo, nos centraremos en una respuesta sencilla de la API.
La solicitud de API que se utilizará es la 'Solicitud de ejemplo de API' mencionada arriba.1 A continuación se desglosa el ejemplo:
https://connect.minitab.com/api/3/User?apikey=45354645654474127781&action=search&args=[{"full_name":"Steve Joe"}]
en https://connect.minitab.com/ y especifica que se trata de una solicitud API versión 3 con /api/3.?apikey=4535464564474127781 2&action=search Esta acción configura el sistema para aceptar un array de filtros que determinará los parámetros de búsqueda.
Esta variable de configuración está separada de la clave API por un ampersand (&). Todas las variables excepto la primera variable están preempeñadas con un ampersand.
&args=[{"full_name":"Steve Joe"}] El array de filtros indica al sistema que busque en los objetos Userdata y devuelva todos los que tengan un atributo de full_name igual a "Steve Joe".La respuesta recibida de una solicitud API es un objeto JSON que contiene todos los objetos de datos de usuario con el atributo "fname" y el valor "Steve". Todos los objetos de respuesta tienen la misma estructura básica y se devuelven como una cadena de caracteres con formato 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}]"}
Este tema describe el proceso para usar la solicitud de búsqueda de la versión 3 de la API para recibir el GUID de un punto final deseado configurando el array de filtros. También explica cómo determinar qué atributos están disponibles para filtrar en un endpoint dado.
Cada objeto en Minitab Connect tiene un extremo correspondiente que puede ser buscado mediante un array de filtros. El primer paso para identificar un ID específico es determinar qué punto final debe usarse en la solicitud de búsqueda de la API. Se puede encontrar más información sobre los endpoints, así como un listado de todos los endpoints actuales, en La Minitab Connect API. Una vez identificado el punto final requerido, el siguiente paso es solicitar la lista de atributos contra los que se puede buscar.
(Para este artículo, se utilizará el endpoint 'usuario'.)Cuando tu solicitud API contiene toda la información requerida, puedes ejecutar la solicitud. Cada solicitud API exitosa de la versión 3 devuelve datos en forma de objeto JSON. Como la petición no incluía un ID de endpoint, la respuesta JSON contendrá todos los datos NULL. Sin embargo, los datos no son lo importante; En este ejemplo, el nombre del atributo antes de los datos es lo que buscamos. Estos son los atributos del endpoint. Aquí está el resultado de la solicitud de API de ejemplo:
{
"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"
Los atributos que se pueden usar para buscar se encuentran dentro del objeto de respuesta JSON -> "data" -> "atributos". En este ejemplo, usando el endpoint de usuario, los atributos son los siguientes: user_id, user_guid, full_name, correo electrónico, teléfono, user_type_id, cust_id, adobe_key, inicio de sesión, last_active, is_active, excepciones, notas, two_factor, auth_token, expires, password_history, access_type, notification_preference, primary_id, primary_guid. Cualquiera o todos estos atributos pueden usarse en un array de filtros para centrarse en un ID de endpoint específico.
Ahora hemos adquirido toda la información necesaria para crear nuestra acción de búsqueda, incluido el array de filtros que contiene todos los atributos y valores que representan el ID de endpoint deseado. Esta acción, &action=search, configura el sistema para aceptar un array de filtros que determinará los parámetros de búsqueda. Ten en cuenta que la acción está precedida por un ampersand (&). Recuerda que todas las variables excepto la primera variable están precedidas con un ampersand.
En este punto, puedes crear el array de filtros. Dependiendo de la información disponible, utilizaremos diferentes atributos para construir nuestro array de filtros. Supongamos que conocemos la siguiente información:
Con esta información y la lista de atributos disponibles para el endpoint del usuario, determinamos que necesitamos los atributos full_name, cust_id y is_active. El array de filtros es el siguiente:
&args=[{"full_name":["eq","Barry Joe"],"is_active":["eq","1"]}]
La solicitud de búsqueda completa de la API versión 3 es la siguiente:
https://connect.minitab.com/api/3/User?apikey=411412489453456345645&action=search&args=[{"full_name":["eq","Barry Joe"],"is_active":["eq","1"]}]
Cuando ejecutamos esta petición, recibimos un único resultado:
{
"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"
El ID del endpoint es 17. Cualquier futura solicitud de API versión 3 que afecte a este usuario contendrá este ID.