Versão atual da API 1.0.240924
Veja as versões desta instrução em Inglês Português Espanhol Alemão Russo
Para obter uma configuração com parâmetros personalizados via API, você precisa realizar os seguintes passos:
Você precisa se registrar no portal cc.ib-aid.com; Apenas um e-mail funcional é necessário.
A senha de chamada da API é individual para cada usuário registrado. Ela é fornecida na página principal no widget "Obter configuração do Firebird via API".
Para gerar a configuração do Firebird, você precisa transmitir dados sobre as características do servidor ou VM em formato json.
Os dados das características do servidor ou VM devem ter a seguinte forma:
data = {
"mailLogin": "teste",
"passApi": "testparol",
"serverVersion": "fb3",
"serverArchitecture": "Classic",
"cores": 8,
"countUsers": 100,
"sizeDb": 100,
"pageSize": 4096,
"ram": 16,
"nameMainDb": "mainVM",
"pathToMainDb": "c:/test/test.fdb",
"osType": "Universal",
"hwType": "Universal"
}
onde
mailLogin
- login para acesso ao portal, obtido durante o registro,passApi
- senha para a API (veja o Ponto 2)serverVersion
- a versão do servidor firebird ou hqbird deve ser especificada da seguinte forma: fb+número da versão ou hq+número da versão. Por exemplo, fb2.5 - para o servidor Firebird 2.5 ou hq5 -- para o servidor HQBird 5serverArchitecture
-- arquitetura do servidor. O parâmetro pode ter um dos valores: Classic, SuperClassic ou SuperServercores
--- número de núcleos do servidor. De 1 a 100;countUsers
- número de usuários. Valor mínimo - 1, máximo - 30000;sizeDb
-- tamanho do banco de dados;pageSize
--- definir o tamanho da página. Os valores podem ser 4096, 8192, 16384 ou 32768;ram
-- RAM do servidor. Valor mínimo - 4, máximo --- 10000;nameMainDb
-- nome do banco de dados principal. O comprimento da string não deve exceder 100 caracteres;pathToMainDb
-- caminho para o banco de dados principal. O comprimento da string não deve exceder 200 caracteres;osType
-- nome do sistema operacional onde o servidor é usado. O valor do parâmetro pode ser Windows, Linux ou Universal; na versão da API 1.0.240924 este parâmetro é sempre definido como Universal.hwType
-- O parâmetro pode ter um dos valores: Hardware, Virtual ou Universal; na versão da API 1.0.240924 este parâmetro é sempre definido como Universal.Você precisa fazer uma chamada de API
"https://cc.ib-aid.com/rest/clc/calculation-params"
O resultado da chamada será um arquivo JSON com os seguintes campos:
{ 'inputParameters': '', 'configurationFirebird': '', 'configurationDatabase': '', 'messageError': ''}
Você pode ver um exemplo abaixo.
Se ocorrer um erro ao receber os dados, ele será exibido no campo messageError:
{'inputParameters':'','configurationFirebird': '', 'configurationDatabase': '', 'messageError': 'Count of users is null. Please, set value.'}
Se um parâmetro não participar do cálculo, seu valor será ignorado. Você pode omitir parâmetros que não são usados nos cálculos.
Dependendo das versões e arquiteturas dos servidores, o conjunto de parâmetros de entrada necessários muda:
import requests
URL = "https://cc.ib-aid.com"
URLEND="/rest/clc/calculation-params"
data={
"mailLogin":"test",
"passApi":"testpassword",
"serverVersion":"fb3",
"serverArchitecture":"Classic",
"cores":8,
"countUsers":10,
"sizeDb":100,
"pageSize":4096,
"ram":16,
"nameMainDb":"mainBD",
"pathToMainDb":"c:/test/test.fdb",
"osType":"Universal",
"hwType":"Universal"
}
r = requests.post(URL+URLEND,json=data)
print(r.status_code)
print(r.json())
package com.rest;
import java.io.Serializable;
public class ResultRest implements Serializable {
private String configurationFirebird= "";
private String configurationDatabase="";
private String messageError="";
private String inputParameters="";
public String getInputParameters() {
return inputParameters;
}
public String getConfigurationFirebird() {
return configurationFirebird;
}
public String getConfigurationDatabase() {
return configurationDatabase;
}
public String getMessageError() {
return messageError;
}
}
package com.rest;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestTemplate;
import org.json.simple.JSONObject;
public class CalculateRest {
public static final String SERVER_URI = "https://cc.ib-aid.com";
public static final String PUT_PARAMS = "/rest/clc/calculation-params";
public static void main(String args[]){
getCalcResult();
}
private static void getCalcResult() {
try {
RestTemplate restTemplate = new RestTemplate();
JSONObject jobj = new JSONObject();
jobj.put("serverArchitecture","classic");
jobj.put("cores",1);
jobj.put("countUsers",100);
jobj.put("sizeDb",100);
jobj.put("pageSize",4096);
jobj.put("ram",200);
jobj.put("serverVersion","fb2.5");
jobj.put("nameMainDb","mainBD");
jobj.put("pathToMainDb","c:/test/test.fdb");
jobj.put("osType","Universal");
jobj.put("hwType","Universal");
jobj.put("mailLogin","test");
jobj.put("passApi","testpassword");
ResultRest y = restTemplate.postForObject(SERVER_URI+PUT_PARAMS,jobj,ResultRest.class);
System.out.println(y.getInputParameters());
System.out.println(y.getConfigurationFirebird());
System.out.println(y.getConfigurationDatabase());
System.out.println(y.getMessageError());
} catch (HttpClientErrorException e) {
// Handle HTTP client errors (4xx status codes)
if (e.getStatusCode().is4xxClientError()) {
System.err.println("Client error: " + e.getStatusCode() + " - " + e.getStatusText());
System.err.println("Response Body: " + e.getResponseBodyAsString());
} else {
System.err.println("Unexpected HTTP status: " + e.getStatusCode());
}
} catch (Exception ex){
System.err.println("An error occurred: " + ex.getMessage());
}
}
}
#{"mailLogin":"[email protected]","ram":16,"countUsers":100,"sizeDb":100,"cores":8,"pageSize":8192,"nameMainDb":"testdb","pathToMainDb":"c:\\test\\test.fdb"}
#Configuração para Firebird 3 (vanilla) Classic (64 bits)
ServerMode = Classic # Firebird Classic
DefaultDBCachePages = 2048
FileSystemCacheThreshold = 64K
TempCacheLimit = 32M
LockHashSlots = 65519 # slots
LockMemSize = 50M
MaxUnflushedWrites = -1
MaxUnflushedWriteTime = -1
WireCrypt = Enabled
RemoteServicePort = 3050
#configuração do plugin de autenticação
# Recomendação - use SELECT * FROM SEC$USERS
# para verificar se você tem usuários para todos os plugins
AuthServer = Srp, Legacy_Auth
UserManager = Srp, Legacy_UserManager
#banco de dados de segurança
security.db = $(dir_secDb)/security3.fdb
{
RemoteAccess = false
DefaultDbCachePages = 250
}
Para todas as perguntas sobre o uso do calculador de configuração, por favor escreva para [email protected]