使用multipart打造rest粗接口
使用multipart打造rest粗接口
中间件提供粗接口设计。
粗接口设计是实现微服务的关键。不论二进制还是rest接口,都可以设计“粗接口”。
multipart,既可以序列键值对,也可以序列文件。。。等二进制数据。也就是说,它可以序列所有类型的数据。
使用multipart,可以方便地打造REST粗接口。粗接口设计后的REST API,在各服务间有且只有一个接口。
function restfunc(const AReq: TBytes; const ABoundary: string): TBytes;
begin
var parts: THttpMultiPartFormData := THttpMultiPartFormData.Create;
try
try
parts.InitWithBoundary(ABoundary);
parts.Decode(AReq, Length(AReq));
case StrToIntDef(parts.Fields['cmd'].AsString, 0) of
cmd_query: Result := query(parts);
end;
except
on e: Exception do
WriteLog('yn.restfunc.restfunc ' + E.Message);
end;
finally
parts.Free;
end;
end;
procedure TForm2.Button2Click(Sender: TObject);
//rest query
begin
var req: TIdMultiPartFormDataStream := TIdMultiPartFormDataStream.Create;
req.AddFormField('cmd', IntToStr(cmd_query));
req.AddFormField('accountno', '1');
req.AddFormField('sql', 'select * from tgoods');
Memo1.Text := IdHTTP1.Post(FUrl + '/rest', req);
req.Free;
end;
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/14320140.html

浙公网安备 33010602011771号