MG/Master Server

From MegaGlest
Revision as of 23:55, 9 July 2012 by 87.189.104.143 (talk) (First revision of Masterserver API documentation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Masterserver RESTful API

This document describes a RESTful API design which MegaGlest could use to communicate with the Master Server.

Version 0.9

The first version of this API will try to provide a simple RESTful variant of the previous masterserver requests and responses. Its primary target is to provide backward compatibility to old-style URIs and requests in combination with HTTP redirections to the endpoints this API provides. On the other hand it shall provide a solid base to develop a proper RESTful API for the future. Nevertheless, this API version may add support for some new request types, i.e. add more functionality.

The most obvious difference to the previous interface is the newly introduced separation of gameserver related requests and game mod related requests into megaglest.org subdomains: master.megaglest.org and mods.megaglest.org.

Until explicitly noted otherwise, this is work in progress.


Host: master.megaglest.org

This subdomain hosts the API which provides information on available gameservers.

Old-style URI's:
http://master.megaglest.org/showServers.php
http://master.megaglest.org/showServersForGlest.php
http://master.megaglest.org/showServersJson.php
http://master.megaglest.org/addServerInfo.php

Mapping of old-style URIs to API URIs:

OLD-STYLE URI               FUNCTION  VERB  API-URI

/showServers.php         -> (list)    GET   /servers.html

/showServersForGlest.php -> (list)    GET   /servers.csv

/showServersJson.php     -> (list)    GET   /servers.json

/showRecentServers.php   -> (list)    GET   /servers-recent.html

/addServerInfo.php       -> (add)     POST  /server.txt/ip/<IP address>/version/<version>
                            (update)  PUT   /server.txt/ip/<IP address>/version/<version>


Host: mods.megaglest.org

This subdomain hosts the API which provides information on available game mods.

Old-style URI's: http://master.megaglest.org/showScenariosForGlest.php
http://master.megaglest.org/showMapsForGlest.php
http://master.megaglest.org/showTechsForGlest.php
http://master.megaglest.org/showTilesetsForGlest.php

Mapping of old-style URIs to API URIs:

OLD-STYLE URI               FUNCTION  VERB  API-URI

/showMapsForGlest.php      ->          GET  /maps.csv

/showScenariosForGlest.php -> (list)   GET  /scenarios.csv

/showTechsForGlest.php     -> (list)   GET  /techtrees.csv

/showTilesetsForGlest.php  -> (list)   GET  /tilesets.csv