{"id":19706480,"url":"https://github.com/hemulgm/miniwebserver","last_synced_at":"2025-02-27T13:51:47.111Z","repository":{"id":110211697,"uuid":"404484909","full_name":"HemulGM/MiniWebServer","owner":"HemulGM","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-12T17:45:59.000Z","size":519,"stargazers_count":16,"open_issues_count":0,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-01-10T12:36:01.136Z","etag":null,"topics":["delphi","file-server","http-server","indy","web-server"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HemulGM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-08T20:22:53.000Z","updated_at":"2024-07-19T04:11:53.000Z","dependencies_parsed_at":"2024-11-11T21:35:52.870Z","dependency_job_id":"80e1f85a-c0de-4cd3-920e-6ed196b07253","html_url":"https://github.com/HemulGM/MiniWebServer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HemulGM%2FMiniWebServer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HemulGM%2FMiniWebServer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HemulGM%2FMiniWebServer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HemulGM%2FMiniWebServer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HemulGM","download_url":"https://codeload.github.com/HemulGM/MiniWebServer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241020878,"owners_count":19895516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["delphi","file-server","http-server","indy","web-server"],"created_at":"2024-11-11T21:35:45.735Z","updated_at":"2025-02-27T13:51:47.082Z","avatar_url":"https://github.com/HemulGM.png","language":"Pascal","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MiniWebServer\n \n```pascal\nprogram MiniWebServer;\n\nuses\n  HTTP.Server in 'HTTP.Server.pas',\n  WMS.OWM in 'Sample\\WMS.OWM.pas';\n\nbegin\n  var Server := THTTPServer.Create;\n  try\n    Server.Route('/weather', GetWeather);\n    Server.Run([80, 8080, 9090]);\n  finally\n    Server.Free;\n  end;\nend.\n```\n\n```pascal\nprogram MiniWebServer_Attrib;\n\nuses\n  HTTP.Server in 'HTTP.Server.pas',\n  WMS.OWM in 'Sample\\WMS.OWM.pas';\n\ntype\n  TServer = class(THTTPServer)\n    //auto class routes\n    [RouteMethod('/test', [GET, HEAD])]\n    procedure Test(Request: TRequest; Response: TResponse);\n    [RouteMethod('/check', [GET])]\n    procedure Check(Request: TRequest; Response: TResponse);\n  end;\n\n{ TServer }\n\nprocedure TServer.Check;\nbegin\n  //send json text\n  Response.Json('{ \"value\": \"test_text\" }', 401);\n  //send file\n  Response.AsFile('C:\\file.ext');\n  //send json object\n  var JObject := TJsonObject.Create;\n  Response.Json(JObject, 200); // auto clear\nend;\n\nprocedure TServer.Test;\nbegin\n  //send object\n  var Obj := TObject.Create;\n  Response.Json(Obj);\n  Obj.Free;\nend;\n\nbegin\n  var Server := TServer.Create;\n  try\n    //GET files\n    Server.AutoFileServer := True;\n    //inline route\n    Server.Route('/run',\n      procedure(Request: TRequest; Response: TResponse)\n      begin\n        Response.Json('{ \"text\": \"done\" }', 200);\n      end);\n    //add route\n    Server.Route('/weather', GetWeather);\n    Server.Run([80, 8080, 9090]);\n  finally\n    Server.Free;\n  end;\nend.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhemulgm%2Fminiwebserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhemulgm%2Fminiwebserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhemulgm%2Fminiwebserver/lists"}