How Easy Is It To Add A REST API To Your Own Apps?

unit employee;

 

interface

 

uses

  Horse, System.JSON, sysutils;

 

procedure Get_Employees(Req: THorseRequest; Res: THorseResponse; Next: TProc);

procedure Get_Employee(Req: THorseRequest; Res: THorseResponse; Next: TProc);

 

implementation

 

procedure Get_Employees(Req: THorseRequest; Res: THorseResponse; Next: TProc);

var

  LRespArr: TJSONArray;

  LRespObj: TJSONObject;

  LEmployee1, LEmployee2, LEmployee3, LEmployee4, LEmployee5: TJSONObject;

begin

  LRespObj:= TJSONObject.Create;

  LRespArr:= TJSONArray.Create;

  LEmployee1:= TJSONObject.Create;

  LEmployee2:= TJSONObject.Create;

  LEmployee3:= TJSONObject.Create;

  LEmployee4:= TJSONObject.Create;

  LEmployee5:= TJSONObject.Create;

  try

    LEmployee1.AddPair(TJSONPair.Create(‘id’, TJSONNumber.Create(1)));

    LEmployee1.AddPair(TJSONPair.Create(‘name’, ‘Employee1’));

 

    LEmployee2.AddPair(TJSONPair.Create(‘id’, TJSONNumber.Create(2)));

    LEmployee2.AddPair(TJSONPair.Create(‘name’, ‘Employee2’));

 

    LEmployee3.AddPair(TJSONPair.Create(‘id’, TJSONNumber.Create(3)));

    LEmployee3.AddPair(TJSONPair.Create(‘name’, ‘Employee3’));

 

    LEmployee4.AddPair(TJSONPair.Create(‘id’, TJSONNumber.Create(4)));

    LEmployee4.AddPair(TJSONPair.Create(‘name’, ‘Employee4’));

 

    LEmployee5.AddPair(TJSONPair.Create(‘id’, TJSONNumber.Create(5)));

    LEmployee5.AddPair(TJSONPair.Create(‘name’, ‘Employee5’));

    LRespArr.AddElement(LEmployee1);

    LRespArr.AddElement(LEmployee2);

    LRespArr.AddElement(LEmployee3);

    LRespArr.AddElement(LEmployee4);

    LRespArr.AddElement(LEmployee5);

 

    LRespObj.AddPair(TJSONPair.Create(‘r’, TJSONBool.Create(true)));

    LRespObj.AddPair(TJSONPair.Create(‘m’, ‘Success’));

    LRespObj.AddPair(TJSONPair.Create(‘d’, LRespArr));

 

    Res.Send(LRespObj.ToString);

  finally

    LRespObj.Free;

  end;

end;

 

procedure Get_Employee(Req: THorseRequest; Res: THorseResponse; Next: TProc);

var

  LRespObj: TJSONObject;

  LEmployeeSelected: TJSONObject;

  id: Double;

begin

  id := StrToFloat(Req.Params[‘id’]);

 

  LRespObj := TJSONObject.Create;

  LEmployeeSelected := TJSONObject.Create;

  LEmployeeSelected.AddPair(TJSONPair.Create(‘name’, ‘Employee’+Req.Params[‘id’]));

  LEmployeeSelected.AddPair(TJSONPair.Create(‘id’, TJSONNumber.Create(id)));

 

  LRespObj.AddPair(TJSONPair.Create(‘r’, TJSONBool.Create(true)));

  LRespObj.AddPair(TJSONPair.Create(‘m’, ‘Success’));

  LRespObj.AddPair(TJSONPair.Create(‘d’, LEmployeeSelected));

  res.Send(LRespObj.ToString);

end;

 

end.