Overview
phpVMS includes a REST API that can be used for retrieving or saving information.
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 listmeta
contains information about the current dataset
{
"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
}
}
Rate Limiting
Laravel's API Middleware includes a rate limiter, which, by default, it set to 60 requests per minute, per-IP.
Response Code
If you exceed the throttling, you'll have a 429 Too Many Requests
HTTP response code. You'll also have a Retry-After
header included, indicating the number of seconds to wait:
Retry-After: 60
The below headers will also be included.
Response Headers
When a request is made, several headers are returned to show you where you are in terms of throttling:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
More Information
To read some more information about how the throttling works in Laravel, check out this page
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.