Licenciamento
Visão geral
A API de licenciamento permite automatizar tarefas relacionadas ao licenciamento de produtos, como listar produtos, extensões e licenças, bem como criar, adicionar e remover licenças.
GET /api/licensing/v1/licenses
Listas as licenças da base de dados.
Escopo de autorização requerido:
- api.licensing
Parâmetros:
- Query string: nenhum
- Corpo da requisição: nenhum
Exemplo de consumo:
curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/licenses -u '<user>:<pass>'
Resultado:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"productName": "Engine",
"type": "nominalUser",
"quantity": 50,
"extensions": [],
"licenseeName": "Empresa Licenciada Ltda.",
"licenserKey": 364943474,
"productKey": -1898148465,
"licenseeId": "00.000.000/0000-00",
"expiration": "2099-12-31"
},
{
"productName": "Web Framework",
"type": "simultaneousUser",
"quantity": 3,
"extensions": [],
"licenseeName": "Empresa Licenciada Ltda.",
"licenserKey": 364943474,
"productKey": -1898141854,
"licenseeId": "00.000.000/0000-00",
"expiration": "2099-12-31"
},
{
"productName": "Product Example",
"type": "nominalUser",
"quantity": 50,
"extensions": [-12345678, -12343459],
"licenseeName": "Empresa Licenciada Ltda.",
"licenserKey": 364943474,
"productKey": -189814185,
"licenseeId": "00.000.000/0000-00",
"expiration": "2099-12-31"
},
]
GET /api/licensing/v1/licenses/<key>
Obtém informações de uma licença.
Escopo de autorização requerido:
- api.licensing
Parâmetros:
- Caminho do ponto de acesso:
- key: a chave da licença
- Query string: nenhum
- Corpo da requisição: nenhum
Exemplo de consumo:
curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/licenses/<key> -u '<user>:<pass>'
Resultado:
HTTP/1.1 200 OK
Content-Type: application/json
{
"productName": "Engine",
"type": "nominalUser",
"quantity": 50,
"extensions": [],
"licenseeName": "Empresa Licenciada Ltda.",
"licenserKey": 364943474,
"productKey": -1898148465,
"licenseeId": "00.000.000/0000-00",
"expiration": "2099-12-31"
}
DELETE /api/licensing/v1/licenses/<key>
Remove uma licença
Escopo de autorização requerido:
- api.licensing
Parâmetros:
- Caminho do ponto de acesso:
- key: a chave da licença
- Query string: nenhum
- Corpo da requisição: nenhum
Exemplo de consumo:
curl -X DELETE -i https://<your_domain>:<port>/api/licensing/v1/licenses/<key> -u '<user>:<pass>'
Resultados:
- Licença removida com sucesso:
HTTP/1.1 200 OK
- Produto já não possui licença:
HTTP/1.1 204 No Content
POST /api/licensing/v1/licenses
Adiciona uma ou mais licenças a partir de um código de licença encriptado. Este código pode ser
gerado usando a API "POST /api/licensing/v1/licenses/create"
.
Escopo de autorização requerido:
- api.licensing
Parâmetros:
- Query string: nenhum
- Corpo da requisição: código de licença encriptado
Exemplo de consumo:
curl -X POST -i https://<your_domain>:<port>/api/licensing/v1/licenses
-u '<user>:<pass>'
-H 'Content-Type: text/plain'
-d 'oem21so3eh29poi3nyxmOIUMDXQmlksjid9238846xn9238xslMLKDJOJlkmdlkmd='
Resultado:
HTTP/1.1 200 OK
POST /api/licensing/v1/licenses/create
Cria uma licença, retornando o código encriptado para ser usado na adição de licenças com a API
"POST /api/licensing/v1/licenses"
.
Escopo de autorização requerido:
- api.licensing
Parâmetros:
- Query string: nenhum
- Corpo da requisição: JSON seguindo o seguinte esquema:
{ "type": "object", "properties": { "licenserKey": { "type": "number" }, "licenseVersion": { "type": "number" }, "licenseeId": { "type": "string", "required": true }, "licenseeName": { "type": "string", "required": true }, "expiration": { "type": "string", "required": true }, "licenses": { "type": "array", "required": true, "minItems": 1, "items": { "type": "object", "properties": { "productKey": { "type": "number", "required": true }, "quantity": { "type": "number", "required": true }, "type": { "type": "string", "required": true }, "extensions": { "type": "array", "items": { "type": "number" } } } } } } }
licenserKey
só deve ser preenchido para renovação de licença.licenseVersion
é opcional, e caso vazio, será usada a versão de licenciamento mais atual.expiration
é uma data no formato “YYYY-MM-DD”.type
pode ser: ‘connection’, ‘processor’, ‘nominalUser’, ‘simultaneousUser’ ou ‘custom’. Ou seus respectivos códigos: ‘C’, ‘P’, ‘U’, ‘S’ ou ‘X’.
Exemplos de consumo:
curl -X POST -i https://<your_domain>:<port>/api/licensing/v1/licenses/create
-u '<user>:<pass>'
-H 'Content-Type: application/json'
-d '{
"licenseVersion": 3,
"licenserKey": 21312445
"licenseeId": "00.000.000/0000-00",
"licenseeName": "Empresa Licenciada Ltda.",
"expiration": "2099-12-31",
"licenses": [
{
"productKey": -189814185,
"type": "nominalUser",
"quantity": 50,
"extensions": [-12345678, -12343459]
},
{
"productKey": -1898141854,
"type": "simultaneousUser",
"quantity": 8
}
]
}'
curl -X POST -i https://<your_domain>:<port>/api/licensing/v1/licenses/create
-u '<user>:<pass>'
-H 'Content-Type: application/json'
-d '{
"licenseeId": "00.000.000/0000-00",
"licenseeName": "Empresa Licenciada Ltda.",
"expiration": "2099-12-31",
"licenses": [
{
"productKey": -1898148465,
"type": "nominalUser",
"quantity": 50
}
]
}'
Resultado:
HTTP/1.1 200 OK
Content-Type: text/plain
oem21so3eh29poi3nyxmOIUMDXQmlksjid9238846xn9238xslMLKDJOJlkmdlkmd=
GET /api/licensing/v1/products
Lista os produtos para os quais a base pode gerar licenças.
Escopo de autorização requerido:
- api.licensing
Parâmetros:
- Query string: nenhum
- Corpo da requisição: nenhum
Exemplo de consumo:
curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/products -u '<user>:<pass>'
Resultado:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"name": "Product Example",
"key": -189814185,
"extensions": [-12345678, -12343459]
}
{
"name": "Web Framework",
"key": -1898141854,
"extensions": []
},
{
"name": "Engine",
"key": -1898148465,
"extensions": []
}
]
GET /api/licensing/v1/products/<key>
Obtém informações de um produto para o qual a base pode gerar licenças.
Escopo de autorização requerido:
- api.licensing
Parâmetros:
- Caminho do ponto de acesso:
- key: a chave do produto
- Query string: nenhum
- Corpo da requisição: nenhum
Exemplo de consumo:
curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/products/<key> -u '<user>:<pass>'
Resultado:
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "Engine",
"key": -1898148465,
"extensions": []
}
GET /api/licensing/v1/products/<key>/extensions
Lista as extensões de um produto para o qual a base pode gerar licenças.
Escopo de autorização requerido:
- api.licensing
Parâmetros:
- Caminho do ponto de acesso:
- key: a chave do produto
- Query string: nenhum
- Corpo da requisição: nenhum
Exemplo de consumo:
curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/products/<key>/extensions -u '<user>:<pass>'
Resultado:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"key": 122343456,
"name": "Extension Example 1"
"code": "ext1"
"productName": "Web Framework",
"productKey": -1898141854
},
{
"key": 122343432,
"name": "Extension Example 2"
"code": "ext2"
"productName": "Web Framework",
"productKey": -1898141854
}
]
GET /api/licensing/v1/extensions
Lista todas as extensões de produtos para os quais a base pode gerar licenças.
Escopo de autorização requerido:
- api.licensing
Parâmetros:
- Query string: nenhum
- Corpo da requisição: nenhum
Exemplo de consumo:
curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/extensions -u '<user>:<pass>'
Resultado:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"key": 122343456,
"name": "WF Extension Ex1"
"code": "ext-wf1"
"productName": "Web Framework",
"productKey": -1898141854
},
{
"key": 122343432,
"name": "WF Extension Ex2"
"code": "ext-wf2"
"productName": "Web Framework",
"productKey": -1898141854
},
{
"key": 122343109,
"name": "Dev Extension Example"
"code": "ext-dev"
"productName": "Development",
"productKey": -1898141853
}
]
GET /api/licensing/v1/extensions/<key>
Obtém as informações de uma extensão de um produto para o qual a base pode gerar licenças.
Escopo de autorização requerido:
- api.licensing
Parâmetros:
- Caminho do ponto de acesso:
- key: a chave da extensão
- Query string: nenhum
- Corpo da requisição: nenhum
Exemplo de consumo:
curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/extensions/<key> -u '<user>:<pass>'
Resultado:
HTTP/1.1 200 OK
Content-Type: application/json
{
"key": 122343456,
"name": "WF Extension Ex1"
"code": "ext-wf1"
"productName": "Web Framework",
"productKey": -1898141854
}