-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathMiniWebServer_Attrib.dpr
52 lines (44 loc) · 1.12 KB
/
MiniWebServer_Attrib.dpr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
program MiniWebServer_Attrib;
uses
System.SysUtils,
System.Json,
HTTP.Server in 'HTTP.Server.pas',
WMS.OWM in 'Sample\WMS.OWM.pas';
type
TServer = class(THTTPServer)
procedure Test(Request: TRequest; Response: TResponse);
procedure Check(Request: TRequest; Response: TResponse);
end;
{ TServer }
[RouteMethod('/check', [GET])]
procedure TServer.Check;
begin
//send json
Response.Json('{ "value": "test_text" }', 401);
//send file
Response.AsFile('C:\file.ext');
end;
[RouteMethod('/test', [GET, HEAD])]
procedure TServer.Test;
begin
var Json := TJSONObject.Create;
Json.AddPair('id', TJSONNumber.Create(Request.Params.Values['id'].ToInteger));
Json.AddPair('text', 'Text');
Json.AddPair('array', TJSONArray.Create('text1', 'text2'));
Response.Json(Json);
end;
begin
var Server := TServer.Create;
try
Server.AutoFileServer := True;
Server.Route('/run',
procedure(Request: TRequest; Response: TResponse)
begin
Response.Json('{ "text": "done" }', 200);
end);
Server.Route('/weather', GetWeather);
Server.Run([777]);
finally
Server.Free;
end;
end.