Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anderakooken/api-json-php7
API for information standardization (Data Science)
https://github.com/anderakooken/api-json-php7
api php php7
Last synced: about 2 months ago
JSON representation
API for information standardization (Data Science)
- Host: GitHub
- URL: https://github.com/anderakooken/api-json-php7
- Owner: anderakooken
- Created: 2023-04-25T14:11:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-04-25T14:11:46.000Z (over 1 year ago)
- Last Synced: 2024-10-12T12:41:01.437Z (3 months ago)
- Topics: api, php, php7
- Language: PHP
- Homepage:
- Size: 13.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API-json-php7.4
API que permite executar consultas em diversos bancos de dados relacionais (Oracle, SQLServer [...]) e retornar os resultados no formato JSON. A ideia do software é padronizar informações distribuídas e possibilitar o uso em programas de BI, tal como Power BI, SSIS ou Pentaho, por exemplo, ou para consumo em outras API.
## Softwares necessários
Sugiro utilizar o **Apache ou Nginx** com **PHP 7.4**, pois essas versões são estáveis. Habilitar o uso de arquivos **.htaccess** também é importante para ocultar os diretórios e limitar os acessos sem autorização.
## Estrutura do projeto
|Arquivo | | |
|----------------|-------------------------------|-----------------------------|
|objects.php| Classe / Funções | Lista funções do sistema
|index.php| Instância de classe / API | As requisições devem ser enviadas para este arquivo |
|configuration/.config | Configurações do programa | Caso utilize as configurações sem banco de dados |
|configuration/.sql-mysql |`Script SQL contendo a estrutura das tabelas`| Caso seja usado um banco de dados como configuração|### index.php
Instância da função que recebe as requisições via HTTP. A variável **$source** é o recebimento de texto puro **php://input** e a requisição deverá ser no formato JSON.
```php
main::middleware($source)
```
Exemplo de requisição:```
curl --location --request POST 'http://[YOUR_IP]/szarca7.4/index.php' \
--header 'Content-Type: application/json' \
--data-raw '{
"logon":
{"user":"@admin","passwd":"3eaa2ac727c5bca6"},
"function":"yourFunctionName",
"param":{}
}'
```
|Parametro| | |
|----------------|-------------------------------|-----------------------------|
|user / passwd| usuário para solicitação de dados | Configurado no DB ou .config
|function| Função que trará as informações do DB
|param | Filtros que serão executados na consulta### object.php
Arquivo que contem todas as funções e tratamentos utilizados no programa.
Para iniciar o uso, é preciso decidir se o software utilizará um banco de dados para armazenamento das funções e usuários, ou esses dados serão armazenados estaticamente em um arquivo JSON.```php
public static $pattern = "json";
private static $configFile = "";
```
|Variável| | |
|----------------|-------------------------------|-----------------------------|
|pattern| formato padrão de saída |
|configFile| Arquivo de configuração estático em JSON | Caso seja informado o arquivo **configuration/.config**, o acesso ao DB é desativado |Caso seja optado pelo uso via DB, configure os dados da conexão:
```php
private static $dbSytemConfig =
array(
"sgbd" => "mysql",
"host" => "127.0.0.1",
"port" => "3306",
"schema" => "admin",
"user" => "admin",
"passwd" => "******"
);
```
### .configCaso seja optado pelo uso de arquivo estático:
```json
{
"system" : {
"status" : true,
"requestMethod" : "POST",
"fileHeader" : true,
"saveLogs" : false,
"bruteForce" : {
"status" : true,
"hits" : 3
},
"cache" : {
"database" : true
},
"plainTextRedirect" : false
},
"users" : [{
"@admin" :{
"id" : 1,
"passwd":"3eaa2ac727c5",
"status" : true,
"data" : {
"name" : "Admin",
"phone" : 0,
"email" : "[email protected]"
},
"security" : {
"sources" : [
"db-query"
]
}
}
}],
"functions" :[{
"db-query" : {
"source" : "db-query",
"query" : {
"fileQueryText" : "",
"queryText" : "",
"parameters" : {
"plainText" : true
}
},
"setCache" : false,
"cacheDuration" : 10,
"status" : true
}
}],
"sources":[{
"db-query" : {
"sgbd" : "mysql",
"host" : "127.0.0.1",
"port" : 3306,
"user" : "admin",
"passwd" : "*******",
"schema" :"admin"
}
}]
}
```