Management API
Since 0.23 PA includes a management API server that is separate to the main webserver. This management API can be used to perform some administrative operations.
Configuration
Configuration of the API server is exactly similar to the Webserver section in the save file, and is described further in server configuration.
The only change in the default config is that the management API server is not by default exposed to external networks (i.e. localhost
instead of 0.0.0.0
) and that it targets port 8001 instead of 8000.
Interaction
The server uses standard REST operations and you are thus very free in which tools you use to contact the server. Popular choices are either the commandline curl command, the postman tool or some websites like apitester or reqbin.
As an added security measure, you need to provide the correct API bearer token when you perform requests. To retrieve the token you can either look into the database manually or use the following python snippet:
import src.auth
print(auth.get_api_token())
System notifications
List all notifications
endpoint: /api/notifications
operation: GET
Returns all notifications currently being broadcasted to all players.
Example curl command:
curl -X GET http://localhost:8001/api/notifications -H 'Authorization: Bearer 0b9f515e153e0e07782e9e41a0ebf0bf7137d0fd655a03ebc4991f24302c313e'
Add a notification
endpoint: /api/notifications
operation: POST
Example curl command:
curl -X POST http://localhost:8001/api/notifications -H 'Authorization: Bearer 0b9f515e153e0e07782e9e41a0ebf0bf7137d0fd655a03ebc4991f24302c313e' -d '{"message": "EXPECTED SERVER MAINTENANCE SUNDAY 11/10/2020 AT 15:50 GMT+2"}'
Remove a notification
endpoint: /api/notifications/<notification_uuid>
operation: DELETE
Example curl command:
curl -X DELETE http://localhost:8001/api/notifications/527f2493-6c18-4760-8c19-6a63b70c2961 -H 'Authorization: Bearer 0b9f515e153e0e07782e9e41a0ebf0bf7137d0fd655a03ebc4991f24302c313e'