Up-date readme.md
This commit is contained in:
parent
a788d78844
commit
35542d3dee
243
README.md
243
README.md
@ -1 +1,242 @@
|
||||
# SQLEasy_server
|
||||
# SQLEasy server
|
||||
It is documentation from SQLEasy server...
|
||||
## Configuration
|
||||
SQLEasy server must been configurated from correct work in your server.
|
||||
### SQLEasy server GUI
|
||||
this is GUI version of SQLEasy server, after start, you can edit custom settings and write your data: host, port, etc.
|
||||
// Here pictures :)
|
||||
### SQLEasy server lite
|
||||
Lite version (console version) configure in command panel (terminal from Linux version and console from win32 version):
|
||||
```bash
|
||||
Enter login from command panel: Admin
|
||||
Enter password from command panel: *****
|
||||
You use httpS protocol? (Y/n): n
|
||||
Enter host: http://localhost
|
||||
Enter port (default: 8080): 8080
|
||||
Want you save server errors in error logs? (Y/n): Y
|
||||
Want you show detalis server errors in resonse (may be usefull from your projects, what no see error logs in server)? (Y/n): Y
|
||||
Make directory "error logs"...
|
||||
Creating database....
|
||||
Creating config.cfg...
|
||||
Starting server http://localhost:8080...
|
||||
=====================================
|
||||
```
|
||||
Ps: in first step you can choose language
|
||||
```bash
|
||||
===============
|
||||
CHOOSE LANGUAGE
|
||||
===============
|
||||
1. [EN] English/English
|
||||
2. [RU] Russian/Русский
|
||||
3. [PL] Polen/Polski
|
||||
===============
|
||||
Enter code: 1
|
||||
```
|
||||
You can choose language later.
|
||||
## Administration
|
||||
From administrating your server, you can use tools in http://localhost:8080/panel. Here located panel from administration server.
|
||||
Use your login and password:
|
||||
// Pin photos...
|
||||
You locating in command panel! Greatings!
|
||||
// Pin photos...
|
||||
You can choose language...
|
||||
// Pin photo...
|
||||
## API
|
||||
You must use POST requests from using SQLEasy server API.
|
||||
Requests you must send in next adress: **http://hostport:8080/api/method**
|
||||
Ps. hostport it's your domain (localhost, 127.0.0.1, mysite.org, etc.)
|
||||
From works you need **token**. Token can give in **http://hostport:8080/panel/tokens**. Token must been configurated from your protect.
|
||||
### Errors in API
|
||||
Codes:
|
||||
100 - SQL Error, errors in SQL script
|
||||
**Example: **
|
||||
```json
|
||||
{
|
||||
"error": {
|
||||
"code": 100,
|
||||
"description": "syntax error"
|
||||
}
|
||||
}
|
||||
```
|
||||
2** - API errors
|
||||
200 - Syntax error, bad request.
|
||||
**Example:**
|
||||
```json
|
||||
{
|
||||
"unparse_value": "blablabla, invalid value!"
|
||||
}
|
||||
```
|
||||
```json
|
||||
{
|
||||
"error": {
|
||||
"code": 200,
|
||||
"description": "Invalid request"
|
||||
}
|
||||
}
|
||||
```
|
||||
210 - Token is null or not founded in request.
|
||||
**Example:**
|
||||
```json
|
||||
{
|
||||
"key": null
|
||||
}
|
||||
```
|
||||
```json
|
||||
{
|
||||
"error": {
|
||||
"code": 210,
|
||||
"description": "Token is null or not founded in request"
|
||||
}
|
||||
}
|
||||
```
|
||||
211 - Invalid token
|
||||
**Example:**
|
||||
```json
|
||||
{
|
||||
"key": "Invalid token :)"
|
||||
}
|
||||
```
|
||||
```json
|
||||
{
|
||||
"error": {
|
||||
"code": 211,
|
||||
"description": "Invalid token"
|
||||
}
|
||||
}
|
||||
```
|
||||
212 - Access denied
|
||||
**Example:**
|
||||
```json
|
||||
{
|
||||
"key": "9883bc5f0da8e41f",
|
||||
"Request": "SELECT * FROM passwords"
|
||||
}
|
||||
```
|
||||
```json
|
||||
{
|
||||
"error": {
|
||||
"code": 212,
|
||||
"description": "Access denied"
|
||||
}
|
||||
}
|
||||
```
|
||||
213 - Time of access is ended
|
||||
**Example:**
|
||||
```json
|
||||
{
|
||||
"key": "9883bc5f0da8e41f",
|
||||
"Request": "SELECT * FROM tables"
|
||||
}
|
||||
```
|
||||
```json
|
||||
{
|
||||
"error": {
|
||||
"code": 213,
|
||||
"description": "Time of access is ended"
|
||||
}
|
||||
}
|
||||
```
|
||||
214 - Token has been removed
|
||||
Ps. If token has been removed 14 days ago (You can recovery this token).
|
||||
**Example:**
|
||||
```json
|
||||
{
|
||||
"key": "9883bc5f0da8e41f",
|
||||
"Request": "SELECT * FROM tables"
|
||||
}
|
||||
```
|
||||
```json
|
||||
{
|
||||
"error": {
|
||||
"code": 214,
|
||||
"description": "Token has been removed"
|
||||
}
|
||||
}
|
||||
```
|
||||
220 - Only for read.
|
||||
**Example:**
|
||||
```json
|
||||
{
|
||||
"key": "9883bc5f0da8e41f",
|
||||
"Request": "INSERT table (ID, name) WHERE (2, \"Rzekow\")"
|
||||
}
|
||||
```
|
||||
```json
|
||||
{
|
||||
"error": {
|
||||
"code": 220,
|
||||
"description": "Only for read"
|
||||
}
|
||||
}
|
||||
```
|
||||
300 - Unknown error
|
||||
Ps. errors in server, information about this errors sends in **/path/to/projectFolder/error logs/12_12_2021 12_12_00GMT.log**
|
||||
**Example:**
|
||||
```json
|
||||
{
|
||||
"key": "9883bc5f0da8e41f",
|
||||
"Request": "INSERT table (ID, name) WHERE (2, \"Rzekow\")"
|
||||
}
|
||||
```
|
||||
```json
|
||||
{
|
||||
"error": {
|
||||
"code": 300,
|
||||
"description": "Unknown error",
|
||||
"detalis": "Traceback:\nblablabla python error"
|
||||
}
|
||||
}
|
||||
```
|
||||
### Execute
|
||||
Example of server url: **http://mywebsite.org/api/Response**
|
||||
This method execute your SQL code in your server.
|
||||
request body:
|
||||
```json
|
||||
{
|
||||
"key": "mykey",
|
||||
"Request": "SELECT * FROM table"
|
||||
}
|
||||
```
|
||||
Request:
|
||||
```json
|
||||
{
|
||||
"response": [
|
||||
{
|
||||
"ID": 0,
|
||||
"name": "Grzegorz"
|
||||
},
|
||||
{
|
||||
"ID": 1,
|
||||
"name": "Hanz"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
### fileExecute
|
||||
Example of server url: **http://mywebsite.org/api/fileExecute**
|
||||
This method execute your SQL code from file in your server.
|
||||
request example:
|
||||
```python
|
||||
import requests, getpass
|
||||
response = requests.post(
|
||||
'http://mywebsite.org/api/Response',
|
||||
data={"key": getpass.getpass('Enter your API key: ')},
|
||||
file=open('/path/to/file.file', 'rb')
|
||||
)
|
||||
print(response.json())
|
||||
```
|
||||
output.log
|
||||
```python
|
||||
{
|
||||
'response': [
|
||||
{
|
||||
'ID': 0,
|
||||
'name': 'Grzegorz'
|
||||
},
|
||||
{
|
||||
'ID': 1,
|
||||
'name': 'Hanz'
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
13
server.py
13
server.py
@ -1,7 +1,18 @@
|
||||
from Flask import flask
|
||||
import server_tools, getpass
|
||||
server_tools.init(
|
||||
server_tools.pyOut('Enter username: '),
|
||||
server_tools.pyOut('Enter password: ', 3, getpass.getpass)
|
||||
)
|
||||
|
||||
|
||||
app = flask(__name__)
|
||||
|
||||
@app.route('/panel')
|
||||
def panel():
|
||||
return '''''' # Вставить код...
|
||||
return '''
|
||||
''' # Вставить код...
|
||||
|
||||
@app.route('/server_api/<method>')
|
||||
def server_api(method):
|
||||
|
||||
|
37
server_tools.py
Normal file
37
server_tools.py
Normal file
@ -0,0 +1,37 @@
|
||||
import random, sys
|
||||
|
||||
login = None
|
||||
password = None
|
||||
|
||||
|
||||
def pyOut(TEXT, border=3, out=input):
|
||||
content = out(TEXT)
|
||||
if content and len(content) >= border:
|
||||
return content
|
||||
else:
|
||||
print('invalid inputed information')
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
|
||||
def init(l, p):
|
||||
global login, password
|
||||
login = l
|
||||
password = p
|
||||
|
||||
|
||||
def genTk(length=16, dictonary='1234567890abcdef'):
|
||||
token = ''
|
||||
for _ in range(length):
|
||||
token += dictonary[random.randint(0, len(dictonary) - 1)]
|
||||
return token
|
||||
|
||||
|
||||
class server_api:
|
||||
def oauth(login, password, **kw):
|
||||
|
||||
|
||||
|
||||
methods = {
|
||||
'oauth': server_api.oauth
|
||||
}
|
Loading…
Reference in New Issue
Block a user