API do Hi Activity (v1.0)

Prev Next

Endereço base

Todos os endereços referenciados neste documento tem como base a seguinte URL:

https://activity-api.hiplatform.com/1.0/

A API do Activity é servida somente sob HTTPS. Para garantir a privacidade das informações, HTTP não criptografado não é suportado.

Autenticação/Autorização

As requisições para a API do Activity são protegidas utilizando Autenticação básica. Em resumo, a Hi Platform irá fornecer um usuário e uma senha exclusivamente para o uso da API, de forma que todas as requisições realizadas devem fornecer estas credenciais.

Cabeçalhos comuns a todas as operações

As requisições para a API do Activity devem possuir os seguintes cabeçalhos:

Header Valor
Authorization Basic [basic authentication token]
Content-Type application/json
Accept application/json

Cotas de consumo

O cliente que usar essa API estará sujeito a um limite na quantidade de requisições que poderá enviar em um dado período de tempo. Essa prática é conhecida como Rate Limiting e é utilizada para garantir a qualidade do serviço.

A cada 'X' minutos (variável conforme o escopo solicitado) o cliente tem direito a fazer um determinado número de requisições (também variável conforme o escopo). Passado o tempo especificado, o limite é reiniciado.

O consumo do limite pode variar conforme o escopo e deve ser acompanhado pelos seguintes http headers:

  • X-Rate-Limit-Limit: informa o total de requisições permitidas dentro de uma janela de X minutos.
  • X-Rate-Limit-Remaining: informa quantas requisições para API ainda são permitidas dentro da janela de X minutos corrente. Se uma requisição for feita após esse valor retornar 0, a API retornará o HTTP status code 429 (Too many connections.).
  • X-Rate-Limit-Reset: devolve o número de segundos disponíveis na janela atual.

Escopos de rate limiting

Nome Limite de requisições Janela de tempo (em minutos)
Padrão 100 10

Importante: Certifique-se de checar o escopo de rate limiting no resumo de cada operação.

Paginação

Determinadas operações podem potencialmente retornar muitos registros. Nestes casos os resultados serão sempre paginados e os seguintes parâmetros opcionais são suportados através de query string:

  • pageNumber: Número da página desejada. Se esse parâmetro não for passado ou for maior do que a quantidade de páginas disponíveis, será assumido que a busca é da página 1;
  • pageSize: Quantidade máxima de registros por página. Deve ser um número entre 10 e 1000. Se esse parâmetro não for passado, será assumido o valor 1000;

Para auxiliar na navegação nos resultados retornados, as operações que requerem paginação devolverão os seguintes cabeçalhos HTTP:

X-Pagination-TotalResult: Total de resultados.
X-Pagination-TotalPages: Total de páginas.
Link: <https://activity-api.hiplatform.com/1.0/...\>; rel="First", 
      <https://activity-api.hiplatform.com/1.0/...\>; rel="Previous", 
      <https://activity-api.hiplatform.com/1.0/...\>; rel="Next", 
      <https://activity-api.hiplatform.com/1.0/...\>; rel="Last"

É importante notar que a existência dos links está sujeita ao contexto atual. Por exemplo: se a página atual for a primeira, então o link Previous não estará disponível.

Importante: Certifique-se de checar a paginação no resumo de cada operação.

Retornos comuns para todas as operações

##### Cabeçalhos

Header Valor
Content-Type application/json

##### Códigos HTTP

HTTP status code Descrição
200 Requisição efetuada, porem pode conter erros. Analisar status da operação.
400 Erro no "formato" da requisição conforme o requisito de cada operação.
401 O header authorization está ausente ou seu conteúdo não pode ser validado contra o serviço de autenticação.
403 As credenciais existem mas são inválidas para uso da API.
429 A cota de consumo foi excedida na janela atual, conforme descrito na seção sobre cotas de consumo.
500 Erro interno não especificado.

##### Corpo

	{
        "status": "...",
        "data:" {
            ...
        },
        "errors": ["..."]
	}
  • status: Há três tipos de status possíveis:

    • OK: A requisição foi recebida com sucesso pelo DT.Rest.Api.Activity.
    • NOTVALID: A requisição foi recebida pelo DT.Rest.Api.Activity, mas não passou na etapa de validação. Os detalhes da validação estarão na lista errors.
    • ERROR: Um erro não esperado ocorreu durante a requisição.
  • data: Retorno da operação

  • errors: Lista com erros sempre que o status não for OK".

Em endpoints com paginação, o conteúdo do campo data muda para conter também dados relacionados ao total de registros e paginação.

	"data": {
		"totalResults": 1,
        "totalPages": 1,
        "pageNumber": 1,
        "items": [
            ...
        ]
	}
  • totalResults: Total de registros dessa consulta.
  • totalPages: Total de páginas que ocupam todos os registros dessa consulta.
  • pageNumber: Qual página está atualmente sendo retornada.
  • items: Array com os objetos retornados pela operação.

# Sub-Recursos

Origens

Tipos

Categorias

Atividades

# Listar Origens

##### Resumo

Informação Valor
Método HTTP GET
URL /source
Escopo de rate limiting Padrão
Paginação Requerido

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

    {
        [
            {
                "id": "...",
                "description": "...",
                "active": "..."
            }
        ]
    }
  • id: GUID que representa o identificador da origem.
  • description: Descrição.
  • active: true/false.

# Listar Tipos

##### Resumo

Informação Valor
Método HTTP GET
URL /type
Escopo de rate limiting Padrão
Paginação Requerido

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

    {
        [
            {
                "id": "...",
                "description": "...",
                "active": "..."
            }
        ]
    }
  • id: GUID que representa o identificador do tipo.
  • description: Descrição.
  • active: true/false.

# Listar categorias

##### Resumo

Informação Valor
Método HTTP GET
URL /category
[Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros

  • sourceId: Identificador da origem.

##### Formato

  • O sourceId informado deve ser GUID válido.

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

    {
        [
            {
                "id": "...",
                "description": "...",
                "active": "..."
            }
        ]
    }
  • id: GUID que representa o identificador da categoria.
  • description: Descrição.
  • active: true/false.

# Listar atividades

##### Resumo

Informação Valor
Método HTTP GET
URL /activity
Escopo de rate limiting Padrão
Paginação Requerido

REQUISIÇÃO

##### Parâmetros

  • startDate: Data/hora inicial para busca, no formato epoch.
  • endDate: Data/hora final para busca, no formato epoch.

##### Parâmetros opcionais

  • categoryId: Identificador da categoria. Se houver mais de um, deve ser separado por vírgula.
  • sourceId: Identificador da origem. Se houver mais de um, deve ser separado por vírgula.
  • typeId: Identificador do tipo. Se houver mais de um, deve ser separado por vírgula.

##### Formato

  • O período informado por startDate e endDate deve ser válido.
  • O(s) categoryId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) sourceId informado(s) deve(m) ser GUID(s) válido(s).
  • O(s) typeId informado(s) deve(m) ser GUID(s) válido(s).

RESPOSTA

##### Cabeçalhos em caso de sucesso

Header Valor
HTTP status code 200

##### Corpo em caso de sucesso

    {
        [
            {
                "id": "...",
                "description": "...",
                "actionDescription": "...",
                "actionId": "...",
                "actionName": "...",
                "categoryDescription": "...",
                "categoryId": "...",        
                "typeDescription": "..",
                "typeId": "...",
                "sourceDescription": "...",
                "sourceId": "...",
                "creationTime": 1,
                "username": "...",
                "userId": "...",
                "details": [
                    {
                        "id": "...",
                        "description": "..."
                    },
                    ...
                ],
                "links": [
                    {
                        "id": "...",
                        "description": "...",
                        "url": "..."
                    },
                    ...
                ]
            }
        ]
    }
  • id: GUID que representa o identificador da atividade.
  • description: Descrição.
  • actionDescription: Descrição da ação associada a essa atividade.
  • actionId: ID da ação associada a essa atividade.
  • actionName: Nome da ação associada a essa atividade.
  • categoryDescription: Descrição da categoria.
  • categoryId: GUID que representa o identificador da categoria.
  • typeDescription: Descrição do tipo da atividade.
  • typeId: GUID que representa o identificador do tipo.
  • sourceDescription: Descrição da origem da atividade.
  • sourceId: GUID que representa o identificador da origem.
  • creationTime: Data de criação, no formato epoch.
  • username: Nome do usuário que gerou essa atividade.
  • userId: GUID que representa o identificador do usuário que gerou essa atividade.
  • details: Lista com detalhes que foram associados a atividade:
    • id: GUID que representa o identificador do detalhe.
    • description: Descrição do detalhe.
  • links: Links associados a essa atividade
    • id: GUID que representa o identificador do link.
    • description: Descrição do link.
    • url: URL do link.

Artigos relacionados:

Gestão de usuários de API