Aqui está um exemplo de solicitação de busca.
No exemplo acima, o endpoint é source, o que limita o que pode ser feito com a requisição da API a ações especificamente projetadas para manipular objetos de dados do usuário.
No exemplo acima, a ação é Buscar. A busca é usada para obter dados de um endpoint que atenda a um conjunto específico de filtros.
{Valor-chave}.
action=search&args=[{"full_name":"Steve Joe"}] só retornaria registros onde "full_name" (Chave) é "Steve Joe" (Valor). Qualquer número de filtros pode ser usado, desde que se encaixem na estrutura Chave:Valor e sejam separados por vírgulas.Quando você adiciona valores de filtro à solicitação de busca da API, as strings de texto devem estar dentro das aspas.
A Minitab Connect ação de busca no endpoint da API é limitada a consultas simples. Solicitações de busca composta devem ser feitas contra chaves diferentes. Por exemplo: {"A":"Bob"},{"B":"Test"}. Consultar uma chave duas vezes na mesma solicitação resulta em uma resposta que contém todos os resultados que correspondem apenas à segunda condição. Consultas complexas contra uma única chave são possíveis via o endpoint da interface de origem usando js_filter.
Cada requisição de API bem-sucedida na versão 3 retorna dados na forma de um objeto JSON. Neste exemplo, vamos focar em uma resposta simples da API.
A solicitação de API que será usada é a 'Request de Exemplo de API' acima.1 A seguir uma análise do exemplo:
https://connect.minitab.com/api/3/User?apikey=45354645654474127781&action=search&args=[{"full_name":"Steve Joe"}]
em https://connect.minitab.com/ e especifica que se trata de uma requisição API versão 3 com /api/3.?apikey=4535464564474127781 2&ação=busca Essa ação configura o sistema para aceitar um array de filtros que determinará os parâmetros de busca.
Essa variável de configuração é separada da chave API por um ampersand (&). Todas as variáveis, exceto a primeira variável, são precedidas por um ampersand.
&args=[{"full_name":"Steve Joe"}] O array de filtro instrui o sistema a pesquisar nos objetos Userdata e retornar todos os que têm um atributo de full_name igual a "Steve Joe".A resposta recebida de uma solicitação de API é um objeto JSON que contém todos os objetos de dados do usuário com o atributo "fname" e o valor "Steve". Todos os objetos de resposta possuem a mesma estrutura básica e são retornados como uma string formatada em 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 tópico descreve o processo para usar a requisição de busca da API versão 3 para receber o GUID de um endpoint desejado configurando o array de filtros. Também aborda como determinar quais atributos estão disponíveis para filtrar em um determinado endpoint.
Cada objeto em Minitab Connect possui um ponto final correspondente que pode ser pesquisado usando um array de filtros. O primeiro passo para identificar um ID específico é determinar qual endpoint deve ser usado na solicitação de busca da API. Mais informações sobre endpoints, assim como uma listagem de todos os endpoints atuais, podem ser encontradas em A Minitab Connect API. Uma vez identificado o endpoint necessário, o próximo passo é solicitar a lista de atributos que podem ser pesquisados.
(Para este artigo, será usado o endpoint 'usuário'.)Quando sua requisição de API contém todas as informações necessárias, você pode executar a solicitação. Cada Solicitação API da versão 3 bem-sucedida retorna dados na forma de um objeto JSON. Como a requisição não incluiu um ID de endpoint, a resposta JSON conterá todos os dados NULL. No entanto, os dados não são o que importa; Neste exemplo, o nome do atributo antes dos dados é o que estamos procurando. Esses são os atributos do endpoint. Aqui está o resultado do exemplo de Solicitação de 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"
Os atributos que podem ser usados para buscar podem ser encontrados dentro do objeto de resposta JSON -> "data" -> "atributos". Neste exemplo, usando o endpoint do usuário, os atributos são os seguintes: user_id, user_guid, full_name, e-mail, telefone, user_type_id, cust_id, adobe_key, login, last_active, is_active, exceções, notas, two_factor, auth_token, expires, password_history, access_type, notification_preference, primary_id, primary_guid. Qualquer um ou todos esses atributos podem ser usados em um array de filtro para focar em um ID específico de endpoint.
Agora adquirimos todas as informações necessárias para criar nossa ação de busca, incluindo o array de filtro que contém todos os atributos e valores que representam o ID de endpoint desejado. Essa ação, &action=search, configura o sistema para aceitar um array de filtro que determinará os parâmetros de busca. Note que a ação é precedida por um e amperand (&). Lembre-se de que todas as variáveis, exceto a primeira, são precedidas por um e ampersand.
Neste ponto, você pode criar o array de filtros. Dependendo das informações disponíveis, usaremos diferentes atributos para construir nosso array de filtros. Vamos supor que sabemos as seguintes informações:
Com essas informações e a lista de atributos disponíveis para o endpoint do usuário, determinamos que precisamos dos atributos full_name, cust_id e is_active. O array de filtros é o seguinte:
&args=[{"full_name":["eq","Barry Joe"],"is_active":["eq","1"]}]
A solicitação completa de busca da versão 3 da API é a seguinte:
https://connect.minitab.com/api/3/User?apikey=411412489453456345645&action=search&args=[{"full_name":["eq","Barry Joe"],"is_active":["eq","1"]}]
Quando executamos essa solicitação, recebemos um ú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"
O ID do endpoint é 17. Qualquer Solicitação futura da API versão 3 que afete este Usuário conterá este ID.