Beginning spec for thunix API

This commit is contained in:
Ubergeek 2020-01-21 08:20:55 -05:00
parent 9a39cc2c5f
commit ac0749c01b
1 changed files with 64 additions and 0 deletions

64
articles/wiki/api.md Normal file
View File

@ -0,0 +1,64 @@
# Thunix API
This is the working spec for the Thunix API. Until finalization, the spec will be consider v1. v1 of the API shall be considered unstable, and a work in progress.
The API will be authenticated, at all times, using the user's credentials sent in the host headers.
The API shall return a 200 for successful requests, with the JSON paylod.
The API shall return a 400 for any endpoint not existent.
The API shall return a 401 for unauthenticated requests.
The API shall return a 403 for requests which are authenticated, but not permissible for the authenticated user.
The API shall return a 420 for requests exceeding the rate limits.
The API shall return a 501 for requests which exist in the spec, but have not been implmented yet.
## API Format
The API is a RESTful API, and the following URIs will be used:
```https:{hostname}/api/1/{action}```
## Informational APIs
### ip_info
This endpoint shall return a json struct containing interfaces, and IP addresses in CIDR format:
```{
"Interfaces":[
{
"Name":"eth0",
"Addresses":[
"10.0.0.1/32",
"10.0.1.100/24"
]
},
{
"Name":"wg0",
"Addresses":[
"192.168.0.1/24"
]
}
]
}
```
### uptime
This will return a struct of system uptime:
```
{
"days":164,
"hours":16,
"mins":22,
"secs":3
}
```