Mit dem Code geht's, aber dann bekomme ich noch headerinfos in meinem JSON string auf die der Client nicht ausgelegt ist.
Die Auskommentierten Zeilen waren der vorhergehende Aufruf.
Delphi-Quellcode:
procedure TDataResource1.GetItem(const AContext: TEndpointContext;
const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);
const
cPreComponentName = 'qry';
var
LItem: string;
lQueryComponent: TComponent;
lStream: TMemoryStream;
begin
LItem := ARequest.Params.Values['item'];
// Sample code
// AResponse.Body.SetValue(TJSONString.Create('data ' + LItem), true);
lQueryComponent := FindComponent(cPreComponentName + LItem);
if assigned(lQueryComponent) then
begin
if lQueryComponent is TFDQuery then
begin
TFDQuery(lQueryComponent).Open;
// AResponse.Body.SetValue(TJSONString.Create(TFDQuery(lQueryComponent).RecordCount.ToString),true);
lStream := TMemoryStream.Create;
TFDQuery(lQueryComponent).SaveToStream(lstream, sfJSON);
AResponse.Body.SetStream(lstream, 'application/json', True);
// FDBatchMoveDataSetReader1.DataSet := TFDQuery(lQueryComponent);
// FDBatchMoveJSONWriter1.JsonWriter := AResponse.Body.JsonWriter;
// FDBatchMove1.Execute;
exit;
end;
end;
AResponse.Body.SetValue (TJSONString.Create(LItem + ' is no valid table'), true);
end;