mirror of
https://github.com/danieleteti/delphimvcframework.git
synced 2024-11-15 15:55:54 +01:00
70 lines
1.7 KiB
ObjectPascal
70 lines
1.7 KiB
ObjectPascal
unit MyController1U;
|
|
|
|
interface
|
|
|
|
uses
|
|
MVCFramework,
|
|
MVCFramework.Commons,
|
|
MVCFramework.Swagger.Commons;
|
|
|
|
const
|
|
INDEX_JSON_SCHEMA =
|
|
'{' + sLineBreak +
|
|
' "type": "object",' + sLineBreak +
|
|
' "properties": {' + sLineBreak +
|
|
' "application": {' + sLineBreak +
|
|
' "type": "string",' + sLineBreak +
|
|
' "description": "Application Name"' + sLineBreak +
|
|
' },' + sLineBreak +
|
|
' "online": {' + sLineBreak +
|
|
' "type": "boolean",' + sLineBreak +
|
|
' "description": "Defines if the server is online"' + sLineBreak +
|
|
' },' + sLineBreak +
|
|
' "serverdatetime": {' + sLineBreak +
|
|
' "type": "string",' + sLineBreak +
|
|
' "description": "Current server time"' + sLineBreak +
|
|
' }' + sLineBreak +
|
|
' }' + sLineBreak +
|
|
'}';
|
|
|
|
type
|
|
|
|
[MVCPath('/status')]
|
|
TMyController1 = class(TMVCController)
|
|
public
|
|
[MVCPath('')]
|
|
[MVCSwagSummary('Status', 'API Status')]
|
|
[MVCSwagResponses(200, 'Sucess', INDEX_JSON_SCHEMA)]
|
|
[MVCSwagResponses(500, 'Internal Server Error')]
|
|
[MVCProduces(TMVCMediaType.APPLICATION_JSON)]
|
|
[MVCHTTPMethod([httpGET])]
|
|
procedure Index;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
JsonDataObjects,
|
|
System.SysUtils,
|
|
System.DateUtils,
|
|
MVCFramework.Controllers.Register;
|
|
|
|
{ TMyController1 }
|
|
|
|
procedure TMyController1.Index;
|
|
var
|
|
LObj: TJDOJsonObject;
|
|
begin
|
|
LObj := TJDOJsonObject.Create;
|
|
LObj.S['application'] := Context.Config[TMVCConfigKey.ServerName];
|
|
LObj.B['online'] := True;
|
|
LObj.S['serverdatetime'] := DateToISO8601(Now);
|
|
Render(LObj);
|
|
end;
|
|
|
|
initialization
|
|
|
|
TControllersRegister.Instance.RegisterController(TMyController1, 'MyServerName');
|
|
|
|
end.
|