remove docs dir
This commit is contained in:
parent
9c008c6a4f
commit
e7f0eeab48
@ -1 +0,0 @@
|
|||||||
theme: jekyll-theme-cayman
|
|
448
docs/api.md
448
docs/api.md
@ -1,448 +0,0 @@
|
|||||||
phpVMS has a REST-api for integration with any standalone programs, including any flight simulator addons, or ACARS applications.
|
|
||||||
|
|
||||||
# Authentication and Authorization
|
|
||||||
|
|
||||||
Each user is given an API key (and can regenerate it) when they register. Requests to a phpVMS API will require an `X-API-Key` header, with this key. Addons can take advantage of this by adding the `api.auth` middleware to their route group.
|
|
||||||
|
|
||||||
### Headers Example
|
|
||||||
|
|
||||||
```http
|
|
||||||
X-API-Key: {user API key}
|
|
||||||
Content-type: application/json
|
|
||||||
```
|
|
||||||
|
|
||||||
## Sample cURL Request
|
|
||||||
|
|
||||||
```php
|
|
||||||
$api_key = 'YOUR API KEY';
|
|
||||||
$url = "http://your-site.com/api/user";
|
|
||||||
$headers = [
|
|
||||||
'X-API-Key:' . $api_key,
|
|
||||||
'Content-type:application/json',
|
|
||||||
];
|
|
||||||
|
|
||||||
$ch = curl_init();
|
|
||||||
|
|
||||||
curl_setopt($ch,CURLOPT_URL,$url);
|
|
||||||
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
|
|
||||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
|
||||||
|
|
||||||
json_response = \json_decode(curl_exec($ch));
|
|
||||||
curl_close($ch);
|
|
||||||
|
|
||||||
echo $json_response;
|
|
||||||
```
|
|
||||||
## Types
|
|
||||||
|
|
||||||
Not all IDs are numeric integers. At the moment, the primary keys on these tables are strings. They are hashed IDs that are generated:
|
|
||||||
|
|
||||||
* acars
|
|
||||||
* flights
|
|
||||||
* pireps
|
|
||||||
|
|
||||||
## Errors
|
|
||||||
|
|
||||||
Where possible, the standard HTTP error codes are followed and returned, with extra information in the body, if available.
|
|
||||||
|
|
||||||
### Unauthorized
|
|
||||||
|
|
||||||
`401` is returned if the API key is invalid, or the user is disallowed from API access. The `message` parameter will offer more error.
|
|
||||||
|
|
||||||
### Not Found
|
|
||||||
|
|
||||||
`404` is returned if an entity is not found
|
|
||||||
|
|
||||||
### Validation Errors
|
|
||||||
|
|
||||||
`400`, with details in the `message` parameter about the bad input.
|
|
||||||
|
|
||||||
## Pagination
|
|
||||||
|
|
||||||
Where indicated, pagination is enabled/available. When calling those APIs, the data is returned in this format:
|
|
||||||
|
|
||||||
- `data` contains a list of all of the objects (for example, the airports)
|
|
||||||
- `links` contains the links to navigate through the paginated list
|
|
||||||
- `meta` contains information about the current dataset
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"data": [ ... ],
|
|
||||||
"links": {
|
|
||||||
"first":"http://phpvms.test/api/airports?page=1",
|
|
||||||
"last":"http://phpvms.test/api/airports?page=3",
|
|
||||||
"prev":null,
|
|
||||||
"next":"http://phpvms.test/api/airports?page=2"
|
|
||||||
},
|
|
||||||
"meta": {
|
|
||||||
"current_page": 1,
|
|
||||||
"from":1,
|
|
||||||
"last_page":3,
|
|
||||||
"path":"http://phpvms.test/api/airports",
|
|
||||||
"per_page":50,
|
|
||||||
"to":50,
|
|
||||||
"total":120
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
# APIs Available
|
|
||||||
|
|
||||||
## User
|
|
||||||
|
|
||||||
### GET /api/user
|
|
||||||
|
|
||||||
Returns the user's information, including bids, etc. Example response:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"id":2,
|
|
||||||
"name":"Adam Lockman PhD",
|
|
||||||
"email":"miles.sporer@example.net",
|
|
||||||
"apikey":null,
|
|
||||||
"rank_id":"1",
|
|
||||||
"home_airport": "KJFK",
|
|
||||||
"curr_airport": "KJFK",
|
|
||||||
"last_pirep_id": 1,
|
|
||||||
"flights":0,
|
|
||||||
"flight_time":914,
|
|
||||||
"balance":0,
|
|
||||||
"timezone": "American/Chicago",
|
|
||||||
"status":0,
|
|
||||||
"state":1,
|
|
||||||
"airline":{
|
|
||||||
"id":1,
|
|
||||||
"icao":"VMS",
|
|
||||||
"iata":"VMS",
|
|
||||||
"name":"phpVMS Airlines",
|
|
||||||
"country":"United States",
|
|
||||||
"logo":null
|
|
||||||
},
|
|
||||||
"bids":[
|
|
||||||
|
|
||||||
],
|
|
||||||
"rank":{
|
|
||||||
"name":"New Pilot",
|
|
||||||
"subfleets":[
|
|
||||||
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
***
|
|
||||||
|
|
||||||
## Airlines
|
|
||||||
|
|
||||||
### GET /api/airlines
|
|
||||||
|
|
||||||
Get all of the airlines. Paginated
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"data":[
|
|
||||||
{
|
|
||||||
"id":1,
|
|
||||||
"icao": "VMS",
|
|
||||||
"iata": "VMS",
|
|
||||||
"name": "phpVMS Airlines",
|
|
||||||
"country": "United States",
|
|
||||||
"logo": null
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"links":{
|
|
||||||
"first":"http://phpvms.test/api/airlines?page=1",
|
|
||||||
"last":"http://phpvms.test/api/airlines?page=1",
|
|
||||||
"prev":null,
|
|
||||||
"next":null
|
|
||||||
},
|
|
||||||
"meta":{
|
|
||||||
"current_page":1,
|
|
||||||
"from":1,
|
|
||||||
"last_page":1,
|
|
||||||
"path":"http://phpvms.test/api/airlines",
|
|
||||||
"per_page":50,
|
|
||||||
"to":1,
|
|
||||||
"total":1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### GET /api/airlines/{ID}
|
|
||||||
|
|
||||||
Get information about a specific airline
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"id":1,
|
|
||||||
"icao": "VMS",
|
|
||||||
"iata": "VMS",
|
|
||||||
"name": "phpVMS Airlines",
|
|
||||||
"country": "United States",
|
|
||||||
"logo": null
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
## Airports
|
|
||||||
|
|
||||||
### GET /api/airports
|
|
||||||
|
|
||||||
Get all of the airports, paginated list
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"data":[
|
|
||||||
{
|
|
||||||
"id":"KJFK",
|
|
||||||
"iata":"KJFK",
|
|
||||||
"icao":"KJFK",
|
|
||||||
"name":"John F Kennedy International Airport",
|
|
||||||
"city":"New York",
|
|
||||||
"country":"United States",
|
|
||||||
"location":null,
|
|
||||||
"hub": true,
|
|
||||||
"fuel_100ll_cost": 0.00,
|
|
||||||
"fuel_jeta_cost": 0.00,
|
|
||||||
"fuel_mogas_cost": 0.00,
|
|
||||||
"tz":"America/New_York",
|
|
||||||
"lat":40.6398,
|
|
||||||
"lon":-73.7789
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"links":{
|
|
||||||
"first":"http://phpvms.test/api/airports?page=1",
|
|
||||||
"last":"http://phpvms.test/api/airports?page=2",
|
|
||||||
"prev":null,
|
|
||||||
"next":"http://phpvms.test/api/airports?page=2"
|
|
||||||
},
|
|
||||||
"meta":{
|
|
||||||
"current_page":1,
|
|
||||||
"from":1,
|
|
||||||
"last_page":2,
|
|
||||||
"path":"http://phpvms.test/api/airports",
|
|
||||||
"per_page":50,
|
|
||||||
"to":2,
|
|
||||||
"total":2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### GET /api/airports/hubs
|
|
||||||
|
|
||||||
Get all of the hubs, paginated list
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"data":[
|
|
||||||
{
|
|
||||||
"id":"KJFK",
|
|
||||||
"iata":"KJFK",
|
|
||||||
"icao":"KJFK",
|
|
||||||
"name":"John F Kennedy International Airport",
|
|
||||||
"city":"New York",
|
|
||||||
"country":"United States",
|
|
||||||
"location":null,
|
|
||||||
"hub": true,
|
|
||||||
"fuel_100ll_cost": 0.00,
|
|
||||||
"fuel_jeta_cost": 0.00,
|
|
||||||
"fuel_mogas_cost": 0.00,
|
|
||||||
"tz":"America/New_York",
|
|
||||||
"lat":40.6398,
|
|
||||||
"lon":-73.7789
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"links":{
|
|
||||||
"first":"http://phpvms.test/api/airports?page=1",
|
|
||||||
"last":"http://phpvms.test/api/airports?page=2",
|
|
||||||
"prev":null,
|
|
||||||
"next":"http://phpvms.test/api/airports?page=2"
|
|
||||||
},
|
|
||||||
"meta":{
|
|
||||||
"current_page":1,
|
|
||||||
"from":1,
|
|
||||||
"last_page":2,
|
|
||||||
"path":"http://phpvms.test/api/airports",
|
|
||||||
"per_page":50,
|
|
||||||
"to":2,
|
|
||||||
"total":2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### GET /api/airports/{ICAO}
|
|
||||||
|
|
||||||
Get the details about an airport
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"id":"KJFK",
|
|
||||||
"iata":"KJFK",
|
|
||||||
"icao":"KJFK",
|
|
||||||
"name":"John F Kennedy International Airport",
|
|
||||||
"city":"New York",
|
|
||||||
"country":"United States",
|
|
||||||
"location":null,
|
|
||||||
"hub": true,
|
|
||||||
"fuel_100ll_cost": 0.00,
|
|
||||||
"fuel_jeta_cost": 0.00,
|
|
||||||
"fuel_mogas_cost": 0.00,
|
|
||||||
"tz":"America/New_York",
|
|
||||||
"lat":40.6398,
|
|
||||||
"lon":-73.7789
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
## Fleet
|
|
||||||
|
|
||||||
### GET /api/fleet
|
|
||||||
|
|
||||||
Get all of the subfleets and aircraft under the fleet. Includes the fare and airline information. Paginated
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"data":[
|
|
||||||
{
|
|
||||||
"id":1,
|
|
||||||
"airline_id":1,
|
|
||||||
"name":"Boeing 747-400",
|
|
||||||
"type":"B744",
|
|
||||||
"fuel_type":null,
|
|
||||||
"cargo_capacity":null,
|
|
||||||
"fuel_capacity":null,
|
|
||||||
"gross_weight":null,
|
|
||||||
"aircraft":[
|
|
||||||
{
|
|
||||||
"id":1,
|
|
||||||
"subfleet_id":"1",
|
|
||||||
"icao":"B744",
|
|
||||||
"airport_id":"KJFK",
|
|
||||||
"hex_code":null,
|
|
||||||
"name":"Boeing 747 \"The Queen\"",
|
|
||||||
"registration":"NC17",
|
|
||||||
"tail_number":"17",
|
|
||||||
"active":true,
|
|
||||||
"created_at":"2018-01-08 21:37:13",
|
|
||||||
"updated_at":"2018-01-08 21:37:13"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"links":{
|
|
||||||
"first":"http://phpvms.test/api/fleet?page=1",
|
|
||||||
"last":"http://phpvms.test/api/fleet?page=1",
|
|
||||||
"prev":null,
|
|
||||||
"next":null
|
|
||||||
},
|
|
||||||
"meta":{
|
|
||||||
"current_page":1,
|
|
||||||
"from":1,
|
|
||||||
"last_page":1,
|
|
||||||
"path":"http://phpvms.test/api/fleet",
|
|
||||||
"per_page":50,
|
|
||||||
"to":2,
|
|
||||||
"total":2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### GET /api/aircraft/{id}
|
|
||||||
|
|
||||||
Return information about an aircraft, including the subfleet information
|
|
||||||
|
|
||||||
Query string parameters: `?type=registration|tail_number|icao`. Default/blank is the DB ID
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"id":1,
|
|
||||||
"subfleet_id":"1",
|
|
||||||
"icao":"B744",
|
|
||||||
"airport_id":"KJFK",
|
|
||||||
"hex_code":null,
|
|
||||||
"name":"Boeing 747 \"The Queen\"",
|
|
||||||
"registration":"NC17",
|
|
||||||
"tail_number":"17",
|
|
||||||
"active":true,
|
|
||||||
"subfleet": {
|
|
||||||
"id":1,
|
|
||||||
"airline_id":1,
|
|
||||||
"name":"Boeing 747-400",
|
|
||||||
"type":"B744",
|
|
||||||
"fuel_type":null,
|
|
||||||
"cargo_capacity":null,
|
|
||||||
"fuel_capacity":null,
|
|
||||||
"gross_weight":null
|
|
||||||
},
|
|
||||||
"created_at":"2018-01-08 21:37:13",
|
|
||||||
"updated_at":"2018-01-08 21:37:13"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
## Flights
|
|
||||||
|
|
||||||
### GET /api/flights
|
|
||||||
|
|
||||||
Return all of the flights, paginated
|
|
||||||
|
|
||||||
### GET /api/flights/{FLIGHT ID}
|
|
||||||
|
|
||||||
Return details about a given flight
|
|
||||||
|
|
||||||
### GET /api/flights/search
|
|
||||||
|
|
||||||
Do a search for a flight
|
|
||||||
|
|
||||||
Query String Example:
|
|
||||||
`/api/flights/search?depicao=KJFK&arricao=KAUS`
|
|
||||||
|
|
||||||
- `airline_id` - ID of the airline
|
|
||||||
- `dep_icao` - Departure airport code
|
|
||||||
- `arr_icao` - Arrival airport code
|
|
||||||
- `flight_number` - Can be a partial match
|
|
||||||
- `route_code`
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
## PIREPs
|
|
||||||
|
|
||||||
### GET /api/pireps/{PIREP ID}
|
|
||||||
|
|
||||||
Retrieve the PIREP information
|
|
||||||
|
|
||||||
### GET /api/pireps/{PIREP ID}/route
|
|
||||||
|
|
||||||
Retrieve the route
|
|
||||||
|
|
||||||
### GET /api/pireps/{PIREP ID}/acars/geojson
|
|
||||||
|
|
||||||
Get the ACARS data in GeoJSON format
|
|
||||||
|
|
||||||
### GET /api/pireps/{PIREP ID}/acars/positions
|
|
||||||
|
|
||||||
Get the ACARS data in plain rows
|
|
||||||
|
|
||||||
[See the ACARS documentation](https://github.com/nabeelio/phpvms/wiki/acars) for details about the PIREPs and ACARS API details
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
## Users
|
|
||||||
|
|
||||||
### GET /api/users/{id}
|
|
||||||
|
|
||||||
Retrieve info about a user
|
|
||||||
|
|
||||||
### GET /api/users/{id}/bids
|
|
||||||
|
|
||||||
Get a user's bids
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
## Settings
|
|
||||||
|
|
||||||
### GET /api/settings
|
|
||||||
|
|
||||||
Get all of the phpVMS configuration settings, including things like the units and individual configuration options.
|
|
||||||
[See the list of settings here](https://github.com/nabeelio/phpvms/blob/master/app/Database/migrations/2017_06_07_014930_create_settings_table.php#L41). Remember to look at the `type` column in order to properly parse the value.
|
|
@ -1,42 +0,0 @@
|
|||||||
# phpvms <sup>7</sup>
|
|
||||||
|
|
||||||
[![Build Status](https://travis-ci.org/nabeelio/phpvms.svg)](https://travis-ci.org/nabeelio/phpvms) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/d668bebb0a3c46bda381af16ce3d9450)](https://www.codacy.com/app/nabeelio/phpvms?utm_source=github.com&utm_medium=referral&utm_content=nabeelio/phpvms&utm_campaign=Badge_Grade) [![Total Downloads](https://poser.pugx.org/nabeel/phpvms/downloads)](https://packagist.org/packages/nabeel/phpvms) [![Latest Stable Version](https://poser.pugx.org/nabeel/phpvms/v/stable)](https://packagist.org/packages/nabeel/phpvms) [![Latest Unstable Version](https://poser.pugx.org/nabeel/phpvms/v/unstable)](https://packagist.org/packages/nabeel/phpvms) [![License](https://poser.pugx.org/nabeel/phpvms/license)](https://packagist.org/packages/nabeel/phpvms)
|
|
||||||
|
|
||||||
The next phpvms version built on the laravel framework. This is a separate version from the old v2/v5 classic version.
|
|
||||||
|
|
||||||
# installation
|
|
||||||
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
- PHP 7.0+, extensions:
|
|
||||||
- cURL
|
|
||||||
- JSON
|
|
||||||
- mbstring
|
|
||||||
- openssl
|
|
||||||
- pdo
|
|
||||||
- tokenizer
|
|
||||||
- Database:
|
|
||||||
- MySQL (or MySQL variant, including MariaDB, Percona)
|
|
||||||
- SQLite (for testing)
|
|
||||||
- Postgres is supported by Laravel but not enabled/tested for phpVMS, yet
|
|
||||||
- Apache or Nginx
|
|
||||||
- Redis (optional, for job queuing, various optimizations)
|
|
||||||
|
|
||||||
## Download
|
|
||||||
|
|
||||||
A full distribution, with all of the composer dependencies, is available at this
|
|
||||||
[tarball link](http://phpvms.net/downloads/phpvms-7.0.0-master.tar.gz). It's currently
|
|
||||||
updated with every commit
|
|
||||||
|
|
||||||
## Upload the files
|
|
||||||
|
|
||||||
If you're on shared hosting, just upload all of the files. If you have your own server, it's
|
|
||||||
recommended to create a vhost that points to the `/public` directory. ([see laravel's installation docs](https://laravel.com/docs/5.5/installation#web-server-configuration))
|
|
||||||
|
|
||||||
## Browse to the site
|
|
||||||
|
|
||||||
Once you browse to the site, you will be given a link to the installer (`/install`) (Note: there
|
|
||||||
isn't a separate `install` folder). If the installation with the vhost and/or htaccess is working
|
|
||||||
correctly, you'll be able to see the installer.
|
|
||||||
|
|
||||||
Follow the instructions to complete the install.
|
|
Loading…
Reference in New Issue
Block a user