Skip to main content

JSON API


Autenticação  

A API HelloCloud permite dois tipos de concessão:

  • Credencial do Cliente

  • Senha

Tabela 1. Parâmetros de solicitação de token
Parameter Description

Access Token URL

{{base.url}}/Api/access_token

Username

Disponível apenas para concessões de senha. Deve ser um nome de usuário válido do HelloCloud.

Password

Disponível apenas para concessões de senha. Senha do usuário selecionado.

Client ID

O ID do cliente existe no ID do módulo OAuth2Clients. Deve ser um GUID válido.

Client Secret

O segredo do cliente também está no módulo OAuth2Clients como valor gerado pelo SHA256.

Scopes

Os escopos ainda não foram implementados

Parâmetros disponíveis

De acordo com a especificação JsonApi, os parâmetros disponíveis são os seguintes, dependendo do endpoint GET:

Campos 

Os campos podem ser filtrados por objeto de atributo. As chaves permitidas são propriedades de bean válidas.

Exemplo:


{{base.url}}/V8/module/Accounts/11a71596-83e7-624d-c792-5ab9006dd493?fields[Accounts]=name,account_type

Resultado:


{
    "data": {
        "type": "Account",
        "id": "11a71596-83e7-624d-c792-5ab9006dd493",
        "attributes": {
            "name": "White Cross Co",
            "account_type": "Customer"
        },
        "relationships": {
            "AOS_Contracts": {
                "links": {
                    "related": "/V8/module/Accounts/11a71596-83e7-624d-c792-5ab9006dd493/relationships/aos_contracts"
                }
            }
        }
    }
}

Página 

A página pode filtrar beans e definir a paginação. As chaves permitidas são numbersize.


  • page[number]: número da página desejada

  • page[size]: tamanho do resultado


Exemplo:


{{base.url}}/V8/module/Accounts?fields[Account]=name,account_type&page[number]=3&page[size]=1

Resultado:

{
    "meta": {
        "total-pages": 54
    },
    "data": [
        {
            "type": "Account",
            "id": "e6e0af95-4772-5773-ae70-5ae70f931feb",
            "attributes": {
                "name": "",
                "account_type": ""
            },
            "relationships": {
                "AOS_Contracts": {
                    "links": {
                        "related": "/V8/module/Accounts/e6e0af95-4772-5773-ae70-5ae70f931feb/relationships/aos_contracts"
                    }
                }
            }
        }
    ],
    "links": {
        "first": "/V8/module/Accounts?fields[Account]=name,account_type&page[number]=1&page[size]=1",
        "prev": "/V8/module/Accounts?fields[Account]=name,account_type&page[number]=2&page[size]=1",
        "next": "/V8/module/Accounts?fields[Account]=name,account_type&page[number]=4&page[size]=1",
        "last": "/V8/module/Accounts?fields[Account]=name,account_type&page[number]=54&page[size]=1"
    }
}

Ordenar 

A classificação só está disponível quando as coleções desejam ser buscadas. A classificação é definida como ASC por padrão. Se a propriedade for prefixada com hífen, a ordem de classificação será alterada para DESC.

Aviso importante:  no momento, oferecemos suporte apenas à classificação única!

Exemplo:


{{base.url}}/V8/module/Accounts?sort=-name

Resultado:


{
    "data": [
        {
            "type": "Account",
            "id": "e6e0af95-4772-5773-ae70-5ae70f931feb",
            "attributes": {
                "name": "White Cross Co",
                "account_type": "Customer"
            },
            "relationships": {
                "AOS_Contracts": {
                    "links": {
                        "related": "/V8/module/Accounts/1d125d2a-ac5a-3666-f771-5ab9008b606c/relationships/aos_contracts"
                    }
                }
            }
        },
        {
            "type": "Account",
            "id": "7831d361-2f3c-dee4-d36c-5ab900860cfb",
            "attributes": {
                "name": "Union Bank",
                "account_type": "Customer"
            },
            "relationships": {
                "AOS_Contracts": {
                    "links": {
                         "related": "/V8/module/Accounts/7831d361-2f3c-dee4-d36c-5ab900860cfb/relationships/aos_contracts"
                    }
                }
            }
        }
    ],
}

Filtro 

Nossa estratégia de filtro é a seguinte:

  • filter[operator]=and

  • filter[account_type][eq]=Customer


Aviso importante:  não oferecemos suporte à classificação em vários níveis no momento!

Operadores suportados 

Comparação 
EQ = '=';
NEQ = '<>';
GT = '>';
GTE = '>=';
LT = '<';
LTE = '<=';

Lógico 
'AND', 'OR'

Exemplo:

{{base.url}}/V8/module/Accounts?fields[Accounts]=name,account_type&filter[operator]=and&filter[account_type][eq]=Customer

Exemplo:

{{base.url}}/V8/module/Accounts?filter[account_type][eq]=Customer

Endpoints 

Logout 

POST {{base.url}}/V8/logout

Obtenha um registro por ID 

GET {{base.url}}/V8/module/{moduleName}/{id}

Parâmetros disponíveis: fields

Exemplo:


V8/module/Accounts/11a71596-83e7-624d-c792-5ab9006dd493?fields[Accounts]=name,account_type

Obtenha uma lista de registro de um módulo 

GET {{base.url}}/V8/module/{moduleName}

Parâmetros disponíveis: fields, page, sort, filter

Exemplo:

V8/module/Accounts?fields[Accounts]=name,account_type&page[size]=4&page[number]=4

Criar um registro no módulo 

POST {{base.url}}/V8/module

Exemplo de corpo:

{
  "data": {
    "type": "Accounts",
    "id": "86ee02b3-96d2-47b3-bd6d-9e1035daff3a",
    "attributes": {
      "name": "Test account"
    }
  }
}

Atualizar um registro no módulo 

PATCH {{base.url}}/V8/module

Exemplo de corpo:

{
  "data": {
    "type": "Accounts",
    "id": "11a71596-83e7-624d-c792-5ab9006dd493",
    "attributes": {
      "name": "Updated name"
    }
  }
}

Excluir um registro de módulo 

DELETE {{base.url}}/V8/module/{moduleName}/{id}

Obter relacionamento 

GET {{base.url}}/V8/module/{moduleName}/{id}/relationships/{relatedModuleName}

Exemplo:

V8/module/Accounts/129a096c-5983-1d59-5ddf-5d95ec91c144/relationships/Accounts

Criar relacionamento

POST {{base.url}}/V8/module/{moduleName}/relationships

Exemplo de corpo:

{
  "data": {
    "type": "Contacts",
    "id": "129a096c-5983-1d59-5ddf-5d95ec91c144"
  }
}

Excluir relacionamento 

DELETE {{base.url}}/V8/module/{moduleName}/{id}/relationships/{relatedModule}/{relatedBeanId}

Exemplo:

V8/module/Accounts/129a096c-5983-1d59-5ddf-5d95ec91c144/relationships/Accounts/11a71596-83e7-624d-c792-5ab9006dd493