haveachin / infrared

An ultra lightweight minecraft reverse proxy and idle placeholder
https://infrared.dev
GNU Affero General Public License v3.0
722 stars 60 forks source link

API: GET config file(s) #189

Open MaxPtg opened 10 months ago

MaxPtg commented 10 months ago

Is your feature request related to a problem? Please describe.

Infrared does currently have a simple REST-API but it's missing 2 core features: listing all currently active configs as well as retreiving a sample config.

Describe the solution you'd like

Implement 2 new API routes, preferably GET /proxies for retreiving all currently active proxies and GET /proxies/{fileName} for retreiving the contents of a specific config file.

Describe alternatives you've considered

I have made my way around this issue by simply reading the contents of the config directory and parsing all contents of these files into one bis JSON array. But there are wayyy more points of failure in this rather than doing this by the built-in REST API.

haveachin commented 10 months ago

In v2 are endpoints for reading and writing configs. Try /docs or look at the swagger.yaml yourself https://github.com/haveachin/infrared/blob/rewrite/api/swagger.yaml

MaxPtg commented 10 months ago

Thanks for pointing that out!

After a bit of trial an error I got the rewrite working on my system and the API does all it's supposed to. But more documentation would be much appreciated in the future (e. g. that you need to pass the config file content as a JSON object).

I just have one more question: Can I pass the forge/fabric compatibility to the requesting client? I have a few modded servers which all show Incompatible Vanilla server with the Better Compatibility Checker. Passing the corresponding versionName and/or protocolNumber does not seem to do anything.