Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hemulgm/miniwebserver
https://github.com/hemulgm/miniwebserver
delphi file-server http-server indy web-server
Last synced: 27 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/hemulgm/miniwebserver
- Owner: HemulGM
- License: mit
- Created: 2021-09-08T20:22:53.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-12T17:45:59.000Z (over 1 year ago)
- Last Synced: 2024-11-24T19:58:13.011Z (2 months ago)
- Topics: delphi, file-server, http-server, indy, web-server
- Language: Pascal
- Homepage:
- Size: 507 KB
- Stars: 16
- Watchers: 4
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MiniWebServer
```pascal
program MiniWebServer;uses
HTTP.Server in 'HTTP.Server.pas',
WMS.OWM in 'Sample\WMS.OWM.pas';begin
var Server := THTTPServer.Create;
try
Server.Route('/weather', GetWeather);
Server.Run([80, 8080, 9090]);
finally
Server.Free;
end;
end.
``````pascal
program MiniWebServer_Attrib;uses
HTTP.Server in 'HTTP.Server.pas',
WMS.OWM in 'Sample\WMS.OWM.pas';type
TServer = class(THTTPServer)
//auto class routes
[RouteMethod('/test', [GET, HEAD])]
procedure Test(Request: TRequest; Response: TResponse);
[RouteMethod('/check', [GET])]
procedure Check(Request: TRequest; Response: TResponse);
end;{ TServer }
procedure TServer.Check;
begin
//send json text
Response.Json('{ "value": "test_text" }', 401);
//send file
Response.AsFile('C:\file.ext');
//send json object
var JObject := TJsonObject.Create;
Response.Json(JObject, 200); // auto clear
end;procedure TServer.Test;
begin
//send object
var Obj := TObject.Create;
Response.Json(Obj);
Obj.Free;
end;begin
var Server := TServer.Create;
try
//GET files
Server.AutoFileServer := True;
//inline route
Server.Route('/run',
procedure(Request: TRequest; Response: TResponse)
begin
Response.Json('{ "text": "done" }', 200);
end);
//add route
Server.Route('/weather', GetWeather);
Server.Run([80, 8080, 9090]);
finally
Server.Free;
end;
end.
```