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" }
}