API Rest

Flexbundle fornece uma API Rest personalizada para todos os workspaces. Para saber como comunicar com seu workspace, deve seleccionar a opção Recursos API. Esta opção pode ser encontrada nos detalhes de um workspace.

Após selecção desta opção a seguinte página é apresentada:

1 - O id do workspace.

2 - O endpoint a utilizar para comunicar com o workspace.

3 - Mapeamento dos campos, ou seja, em que campo cada informação deve ser enviada.

Com a sua chave API e a informação dos recursos API acima indicada, poderá efetuar comunicar com Flexbundle via Restful JSON API.

Criar um objecto

Para criar um novo objecto, é necessário efetuar um pedido POST contendo os dados do objecto que se pretende criar em conformidade com as regras de validação dos campos do workspace.

Pedido

curl -X POST \
https://api.flexbundle.com/v1/workspace/:workspace_id \
 -H '-u: <API KEY>' \
 -H 'content-type: application/json' \
 -H 'Accept: application/json' \
 -d '{ 
   "col1": "<Name>", 
   "col2": "<Email>", 
   "col3": "<Company", 
   "col4": "<Additional Info>"
 }'

Resposta

Status: 201 Created

{
    "id": "<ID>",
    "col1": "<Name>", 
    "col2": "<Email>", 
    "col3": "<Company", 
    "col4": "<Additional Info>"
}

Quando um workspace possui um workflow associado, ao payload do pedido (JSON), deve ser enviado o parâmetro wf_order que, por sua vez, representa o nº da etapa (fase) onde o objecto deve ser criado.

Editar um objecto

Para editar um objecto, é necessário efetuar um pedido PUT contendo os novos dados do objecto.

Pedido

curl -X PUT \
https://api.flexbundle.com/v1/workspace/:workspace_id/:object_id \
 -H '-u: <API KEY>' \
 -H 'content-type: application/json' \
 -H 'Accept: application/json' \
 -d '{ 
   "col1": "<Name>", 
   "col2": "<Email>", 
   "col3": "<Company", 
   "col4": "<Additional Info>"
 }'

Resposta

Status: 200 OK

{
    "id": "<ID>",
    "col1": "<Name>", 
    "col2": "<Email>", 
    "col3": "<Company", 
    "col4": "<Additional Info>"
}

Quando um workspace possui um workflow associado, ao payload do pedido (JSON), pode ser enviado o parâmetro wf_order que, por sua vez, representa o nº da etapa (fase) onde o objecto deve ser movido.

Buscar um objecto

Para buscar um objecto, é necessário efetuar um pedido GET passando o id do objecto como parâmetro.

Pedido

$ curl -X GET \
https://api.flexbundle.com/v1/workspace/:workspace_id/:object_id \
 -H '-u: <API KEY>' \
 -H 'content-type: application/json' \
 -H 'Accept: application/json' \

Resposta

Status: 200 OK

{
    "id": "<ID>",
    "col1": "<Name>", 
    "col2": "<Email>", 
    "col3": "<Company", 
    "col4": "<Additional Info>"
}

Apagar um objecto

Para apagar um objecto, é necessário efetuar um pedido DELETE passando o id do objecto como parâmetro.

Pedido

$ curl -X DELETE \
https://api.flexbundle.com/v1/workspace/:workspace_id/:object_id \
 -H '-u: <API KEY>' \
 -H 'content-type: application/json' \
 -H 'Accept: application/json'

Resposta

Status: 200 OK

Pesquisar objectos

Para pesquisar objectos de um workspace, é necessário efetuar um pedido GET.

Pedido

curl -G -X GET \
https://api.flexbundle.com/v1/workspace/0600000587/object?fields=&query={%22col5%22:%20%20%22flexbundle.com%22}&limit=1&sort=-col7 \
 -H '-u: <API KEY>' \
 -H 'content-type: application/json' \
 -H 'Accept: application/json' \
 --data-urlencode 'fields=col7,$count(id)' \
 --data-urlencode 'query={"col5": {"$eq": "flexbundle.com"}' \
 --data-urlencode 'sort=-col7' \
 --data-urlencode 'limit=2' 

Resposta

Status: 200 OK

[
    {
        "col7": "Twitter",
        "$count(id)":10
    },
    {
        "col7": "Facebook",
        "$count(id)":5
    }
]

Para operações de pesquisa, existem várias opções que podem ser configurados de modo a aproximar ao máximo das operações que podem ser efetuadas numa query SQL. Os seguintes parâmetros podem ser configurados:

  • fields: A lista de campos, separados por vírgula a retornar como resposta à operação de pesquisa. Quando não fornecido, Flexbundle retornará todos os campos;

  • query: Filtros de pesquisa;

  • sort: Parâmetro utilizado para ordernar os resultados da pesquisa. Utilize -<CAMPO> para ordenar os resultados de forma descendente utilizando o campo especificado ou +<Campo> para order de forma ascendente;

  • limit: O número máximo de objectos à retornar como resultado. Por defeito, o sistema retorna no máximo 50 objectos; e

  • offset: O número de objectos a ignorar antes de retornar a lista de objectos.

Utilize combinações de limit e offset para efetuar operações de paginação de dados.

Filtros de pesquisa

Existem várias opções que podem ser utilizadas para filtrar os objectos numa operação pesquisa:

  • $eq: Verifica se o valor do campo é igual ao valor fornecido para o filtro;

  • $ne: Verifica se o valor do campo é diferente ao valor fornecido para o filtro;

  • $gt: Verifica se o valor do campo é maior que o valor fornecido para o filtro;

  • $gte: Verifica se o valor do campo é maior ou igual que o valor fornecido para o filtro;

  • $lt: Verifica se o valor do campo é menor que o valor fornecido para o filtro;

  • $lte: Verifica se o valor do campo é menor ou igual que o valor fornecido para o filtro;

  • $li: Verifica se o valor do campo contém as palavras chaves fornecido para o filtro. Para as palavras chaves do filtro, utilize % antes, entre e depois para melhor expressar a condição pretendida;

  • $nl: Verifica se o valor do campo não contém as palavras chaves fornecido para o filtro. Para as palavras chaves do filtro, utilize % antes, entre e depois para melhor expressar a condição pretendida;

    $in: Verifica se o valor do campo encontra-se na lista de valores fornecida para o filtro. A lista de valores deverá sem expressada utilizando um array. Por exemplo, ["Support","Feature"]

  • $nin: Verifica se o valor do campo não existe na lista de valores fornecida para o filtro. A lista de valores deverá sem expressada utilizando um array. Por exemplo: ["Support","Feature"]

Queries analíticas

Utilizando o parâmetro fields , é possível efetuar queries analíticas aos objectos do workspace. São disponibilizadas as seguintes operações:

  • $count: Executa uma contagem;

  • $sum: Executa um somatório de um campo numérico;

  • $min: Encontra o valor mínimo de um campo numérico ou data;

  • $max: Encontra o valor mínimo de um campo numérico ou data;

  • $avg: Calcula a média dos valores de um campo numérico;

  • $day: Extraí o dia de um campo data;

  • $week: Extraí a semana de um campo data;

  • $month: Extraí o mês de um campo data;

  • $quarter: Extraí o trimestre de um campo data;

  • $year: Extraí o ano de um campo data;

Combine filtros e queries analíticas para obter respostas poderosas com os dados existentes em seus workspaces. Por exemplo, pode obter respostas como: o nº de vendas por região.

Last updated