http: add /config

This commit is contained in:
Lion Kortlepel 2022-05-23 18:44:42 +02:00
parent b46dc664c6
commit f7acd1e819
No known key found for this signature in database
GPG Key ID: 4322FF2B4C71259B
2 changed files with 45 additions and 0 deletions

View File

@ -13,6 +13,37 @@ servers:
port: port:
default: "8000" default: "8000"
paths: paths:
/config:
get:
summary: describes server configuration
description: |
An overview over the configuration currently
used by this server.
responses:
"200":
description: OK
content:
"application/json":
schema:
type: object
properties:
name:
type: string
example: "my awesome beammp server"
description:
type: string
example: "join!"
max_players:
type: integer
example: 7
max_cars:
type: integer
example: 2
map:
type: string
example: "/levels/gridmap_v2/info.json"
private:
type: boolean
/ready: /ready:
get: get:
summary: whether the server has started fully summary: whether the server has started fully

View File

@ -157,6 +157,20 @@ void Http::Server::THttpServerInstance::operator()() try {
HttpLibServerInstance->Get("/", [](const httplib::Request&, httplib::Response& res) { HttpLibServerInstance->Get("/", [](const httplib::Request&, httplib::Response& res) {
res.set_content("<!DOCTYPE html><article><h1>Hello World!</h1><section><p>BeamMP Server can now serve HTTP requests!</p></section></article></html>", "text/html"); res.set_content("<!DOCTYPE html><article><h1>Hello World!</h1><section><p>BeamMP Server can now serve HTTP requests!</p></section></article></html>", "text/html");
}); });
HttpLibServerInstance->Get(API_V1 "/config", [](const httplib::Request&, httplib::Response& res) {
res.status = 200;
res.set_content(json {
{ "name", Application::Settings.ServerName },
{ "description", Application::Settings.ServerDesc },
{ "max_players", Application::Settings.MaxPlayers },
{ "max_cars", Application::Settings.MaxCars },
{ "map", Application::Settings.MapName },
{ "private", Application::Settings.Private },
}
.dump(),
"application/json");
});
HttpLibServerInstance->Get(API_V1 "/ready", [](const httplib::Request&, httplib::Response& res) { HttpLibServerInstance->Get(API_V1 "/ready", [](const httplib::Request&, httplib::Response& res) {
auto Statuses = Application::GetSubsystemStatuses(); auto Statuses = Application::GetSubsystemStatuses();
bool Started = true; bool Started = true;