Pular para conteúdo

API Inventory

O API Inventory documenta suas APIs, descobrindo automaticamente endpoints. Saiba mais clicando aqui.

Serviços

Listar serviços

Lista todos os serviços da conta.

GET /v1/api-inventory/services
$ curl https://api.gocache.com.br/v1/api-inventory/services \
-H "GoCache-Token: meu_token"

Exemplo de sucesso

HTTP/1.1 200 OK
{
  "status_code": 1,
  "response": [
    {
      "created_at": "1788287223",
      "baseUrls": [
        "https://meudominio.com"
      ],
      "id": "b4f54eff0629b483fe66f70bd8fc1830",
      "endpointCount": 19,
      "name": "Serviço de Exemplo",
      "description": "Serviço criado para documentar uma API.",
      "ignoredPaths": [
        "/.well-known"
      ]
    }
  ]
}

Baixar OpenAPI

O API Inventory documenta as APIs utilizando o padrão OpenAPI. É possível baixar o arquivo completo por este endpoint. Só é disponível a versão do arquivo em JSON.

GET /v1/api-inventory/services/{service_id}/download
$ curl https://api.gocache.com.br/v1/api-inventory/services/4d51b47d61b102fad553f0c4dfdc56d7/download \
-H "GoCache-Token: meu_token"

Exemplo de sucesso

HTTP/1.1 200 OK
{
  "status_code": 1,
  "result": {
    "openapi": "3.2.0",
    "info": {
      "title": "Meu serviço",
      "description": "",
      "version": "0.0.1"
    },
    "servers": [
      {
        "url": "https://dominio.com"
      }
    ],
    "paths": {
      "/": {
        "get": {
          "responses": {
            "200": {
              "description": "OK"
            }
          },
          "x-autogenerated": true
        }
      }
    },
    "x-ignored-paths": []
  }
}

Criar serviço

Cria um serviço para documentar uma API.

POST /v1/api-inventory/services
$ curl -X POST https://api.gocache.com.br/v1/api-inventory/services \
-H "GoCache-Token: meu_token" -H "Content-Type: application/json"  \
-d '{"name": "Meu serviço", "description": "Documentando minha API", 
"baseUrls": ["https://meudominio.com/api"], "ignoredPaths": ["/api/v1"] }'

Exemplo de sucesso

HTTP/1.1 200 OK
{
  "status_code": 1,
  "response": {
    "baseUrls": [
      "https://meudominio.com/api"
    ],
    "id": "57e644909ba6dc8da609e0d4f1f14b72",
    "endpointCount": 1,
    "name": "Meu serviço",
    "description": "Documentando minha API",
    "ignoredPaths": [
      "/api/v1"
    ]
  }
}

Parâmetros

Campo Opcional Tipo Descrição
name String Nome do serviço
description String Descrição do serviço
baseUrls String[] Trecho inicial da URL que o serviço possui
ignoredPaths String[] Trecho inicial da URI que será ignorado neste serviço, útil para cenários específicos. Veja casos de uso clicando aqui

Editar serviço

Edita um serviço existente. Todos os campos são opcionais, e apenas será atualizado as informações enviadas.

PATCH /v1/api-inventory/services/{service_id}
$ curl -X POST https://api.gocache.com.br/v1/api-inventory/services/57e644909ba6dc8da609e0d4f1f14b72 \
-H "GoCache-Token: meu_token" -H "Content-Type: application/json"  \
-d '{"description": "Minha nova descrição"}'

Exemplo de sucesso

HTTP/1.1 200 OK
{
  "status_code": 1,
  "response": {
    "baseUrls": [
      "https://meudominio.com/api"
    ],
    "id": "57e644909ba6dc8da609e0d4f1f14b72",
    "endpointCount": 1,
    "name": "Meu serviço",
    "description": "Minha nova descrição",
    "ignoredPaths": [
      "/api/v1"
    ]
  }
}

Parâmetros

Campo Opcional Tipo Descrição
name String Nome do serviço
description String Descrição do serviço
baseUrls String[] Trecho inicial da URL que o serviço possui
ignoredPaths String[] Trecho inicial da URI que será ignorado neste serviço, útil para cenários específicos. Veja casos de uso clicando aqui

Excluir serviço

Deleta um serviço específico.

DELETE /v1/api-inventory/services/{service_id}
$ curl -X DELETE https://api.gocache.com.br/v1/api-inventory/services/57e644909ba6dc8da609e0d4f1f14b72 \
-H "GoCache-Token: meu_token"

Exemplo de sucesso

HTTP/1.1 200 OK
{
  "status_code": 1,
  "response": "57e644909ba6dc8da609e0d4f1f14b72"
}

Endpoints

Listar endpoints

Este endpoint serve para visualizar um resumo de todos os endpoints de um serviço.

GET /v1/api-inventory/services/{service_id}/endpoints
$ curl https://api.gocache.com.br/v1/api-inventory/services/b4f54eff0629b483fe66f70bd8fc1830/endpoints \
-H "GoCache-Token: meu_token"

Exemplo de sucesso

HTTP/1.1 200 OK
{
  "status_code": 1,
  "response": [
    {
      "path": "/",
      "id": "R0VUOi8=",
      "method": "GET",
      "autogenerated": true,
      "firewall_action": "accept",
      "trust_level": 100
    }
  ]
}

Criar endpoint

A criação de endpoints permite adicionar endpoints sem definir a estrutura de corpo e parâmetros de query string ou headers.

POST /v1/api-inventory/services/{service_id}/endpoints
$ curl -X POST https://api.gocache.com.br/v1/api-inventory/services/4d51b47d61b102fad553f0c4dfdc56d7/endpoints \
-H "GoCache-Token: meu_token" -H "Content-Type: application/json"  \
-d '{"path": ["/users", "/users/{user_id}"], "method": ["GET", "POST", "QUERY"], 
"firewall_action": "accept" }'

Exemplo de sucesso

HTTP/1.1 200 OK
{
  "status_code": 1,
  "response": {
    "result": [
      {
        "path": "/users",
        "id": "UVVFUlk6L3VzZXJz",
        "method": "QUERY",
        "serviceId": "4d51b47d61b102fad553f0c4dfdc56d7",
        "firewall_action": "accept"
      },
      {
        "path": "/users/{user_id}",
        "id": "UVVFUlk6L3VzZXJzL3t1c2VyX2lkfQ==",
        "method": "QUERY",
        "serviceId": "4d51b47d61b102fad553f0c4dfdc56d7",
        "firewall_action": "accept"
      },
      {
        "path": "/users",
        "id": "UE9TVDovdXNlcnM=",
        "method": "POST",
        "serviceId": "4d51b47d61b102fad553f0c4dfdc56d7",
        "firewall_action": "accept"
      },
      {
        "path": "/users/{user_id}",
        "id": "UE9TVDovdXNlcnMve3VzZXJfaWR9",
        "method": "POST",
        "serviceId": "4d51b47d61b102fad553f0c4dfdc56d7",
        "firewall_action": "accept"
      },
      {
        "path": "/users",
        "id": "R0VUOi91c2Vycw==",
        "method": "GET",
        "serviceId": "4d51b47d61b102fad553f0c4dfdc56d7",
        "firewall_action": "accept"
      },
      {
        "path": "/users/{user_id}",
        "id": "R0VUOi91c2Vycy97dXNlcl9pZH0=",
        "method": "GET",
        "serviceId": "4d51b47d61b102fad553f0c4dfdc56d7",
        "firewall_action": "accept"
      }
    ],
    "errors": []
  }
}

Parâmetros

Campo Opcional Tipo Descrição
path String[] Lista de paths a serem criados
method String[] Lista de métodos a serem criados para cada path enviado
firewall_action String Ação do API Firewall para os endpoints criados. Por padrão os endpoints são criados com a ação accept. Possíveis valores: accept, simulate e block

Editar API Firewall

Este endpoint edita a ação do API Firewall para múltiplos endpoints.

PATCH /v1/api-inventory/services/{service_id}/endpoints
$ curl -X PATCH https://api.gocache.com.br/v1/api-inventory/services/4d51b47d61b102fad553f0c4dfdc56d7/endpoints \
-H "GoCache-Token: meu_token" -H "Content-Type: application/json"  \
-d '{"endpoints": ["R0VUOi91c2Vycy97dXNlcl9pZH0=", "UE9TVDovdXNlcnMve3VzZXJfaWR9"], "firewall_action": "simulate" }'

Exemplo de sucesso

HTTP/1.1 200 OK
{
  "status_code": 1,
  "response": {
    "result": [
      {
        "firewall_action": "simulate",
        "id": "R0VUOi91c2Vycy97dXNlcl9pZH0="
      },
      {
        "firewall_action": "simulate",
        "id": "UE9TVDovdXNlcnMve3VzZXJfaWR9"
      }
    ],
    "errors": []
  }
}

Parâmetros

Campo Opcional Tipo Descrição
endpoints String[] Lista de ID de endpoints que terão a ação do API Firewall atualizada.
firewall_action String Ação do API Firewall que será atualizado em todos endpoints encaminhados. Possíveis valores: accept, simulate e block

Editar parâmetros de endpoint

Este endpoint permite atualizar os parâmetros de um endpoint. Atualmente os parâmetros possíveis de serem editados são: requestBody, security e parameters. Apenas os campos enviados são atualizados, os não enviados são ignorados.

É possível deletar um campo definindo seu valor para null. Para o requestBody, apenas os content-types enviados dentro de content são atualizados. Se não for enviado um content-type, ele será ignorado na atualização.

Os campos devem seguir o padrão OpenAPI para serem considerados válidos.

PATCH /v1/api-inventory/services/{service_id}/endpoints/{endpoint_id}
$ curl -X PATCH https://api.gocache.com.br/v1/api-inventory/services/4d51b47d61b102fad553f0c4dfdc56d7/endpoints/UE9TVDovdXNlcnMve3VzZXJfaWR9 \
-H "GoCache-Token: meu_token" -H "Content-Type: application/json"  \
-d '{"requestBody": {"content": {"application/json": {"schema": {}}}}}'

Exemplo de sucesso

HTTP/1.1 200 OK
{
  "status_code": 1,
  "response": {
    "requestBody": {
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "parameters": [
      {
        "in": "path",
        "name": "user_id",
        "schema": {
          "type": "string"
        },
        "required": true
      }
    ]
  }
}

Parâmetros

Campo Opcional Tipo Descrição
requestBody Object Campo requestBody seguindo os padrões OpenAPI do endpoint
security Object Campo security seguindo os padrões OpenAPI do endpoint
parameters Object Campo parameters seguindo os padrões OpenAPI do endpoint

Excluir endpoint

Deleta um endpoint específico.

DELETE /v1/api-inventory/services/{service_id}/endpoints/{endpoint_id}
$ curl -X DELETE https://api.gocache.com.br/v1/api-inventory/services/4d51b47d61b102fad553f0c4dfdc56d7/endpoints/UE9TVDovdXNlcnMve3VzZXJfaWR9 \
-H "GoCache-Token: meu_token"

Exemplo de sucesso

HTTP/1.1 200 OK
{
  "status_code": 1,
  "response": { "id": "UE9TVDovdXNlcnMve3VzZXJfaWR9" }
}