A headless facade that acts as a game host and provides web-based administration. Automation category: Terasology Facade. See https://forum.terasology.org/threads/facadeserver-headless-server-with-web-interface.1906
This branch contains a large rewrite of the protocol-agnostic (HTTP and WebSocket) resource management class structure.
Previously, there was distinction between writable and readable resource classes, and writable resources used to accept a single method only (mapped to POST for the HTTP interface).
This was leading to:
the use unnecessarily complex data structures in the request payloads when accessing resources such as Games or ServerAdmins which have a CRUD nature (games is a collection of savegames that you can read information about, create, and remove; ServerAdmins is a set of client ID strings, so you can read the list and add or remove items; and so on);
poor usage of the HTTP protocol capabilities (only GET and POST methods);
an API not following any well-known standard like REST and difficult to document.
The new system is based on REST principles which map more naturally to HTTP without losing the real-time advantage of WebSocket. When using WebSocket, methods are specified as strings and paths as JSON arrays; more information is available in the docs.md document in the root of this branch.
This branch contains a large rewrite of the protocol-agnostic (HTTP and WebSocket) resource management class structure.
Previously, there was distinction between writable and readable resource classes, and writable resources used to accept a single method only (mapped to POST for the HTTP interface). This was leading to:
The new system is based on REST principles which map more naturally to HTTP without losing the real-time advantage of WebSocket. When using WebSocket, methods are specified as strings and paths as JSON arrays; more information is available in the docs.md document in the root of this branch.
The API specification has also been described in the Swagger/OpenAPI format, in the swagger.json file. It's possible to browse the specification online using this link: http://petstore.swagger.io/?url=https://raw.githubusercontent.com/gianluca-nitti/FacadeServer/rest-methods/src/main/resources/web/swagger.json