Simon Grossenbacher 3 år sedan
förälder
incheckning
b0411aa807
8 ändrade filer med 626 tillägg och 602 borttagningar
  1. 17 65
      Example Config.rdproj
  2. BIN
      RESTDebugger.exe
  3. 3 3
      prj/RESTDebugger.dproj
  4. BIN
      prj/RESTDebugger.res
  5. 547 485
      src/_frmMain.dfm
  6. 50 46
      src/_frmMain.pas
  7. 8 3
      src/_frmVariables.dfm
  8. 1 0
      src/_frmVariables.pas

+ 17 - 65
Example Config.rdproj

@@ -1,6 +1,6 @@
 {
 	"Presets": {
-		"LastUsed": "1e43d67905584d9bad0b965b312a9291",
+		"LastUsed": "faf2be76254543f9ad9cc8fca91cef5e",
 		"ConfigVersion": 3
 	},
 	"Preset_faf2be76254543f9ad9cc8fca91cef5e": {
@@ -16,7 +16,7 @@
 		"ResponseAutoFormat": true,
 		"PresetName": "GET: Simple GET",
 		"Guid": "faf2be76254543f9ad9cc8fca91cef5e",
-		"Notes": "",
+		"Notes": "PHA+U2ltcGxlIEdFVCByZXF1ZXN0LjwvcD4=",
 		"Category": ""
 	},
 	"Preset_7d37b798c22748eebf92ffa281ba982a": {
@@ -29,10 +29,10 @@
 		"UseBasicAuth": false,
 		"AuthUsername": "",
 		"AuthPassword": "",
-		"ResponseAutoFormat": false,
+		"ResponseAutoFormat": true,
 		"PresetName": "GET: GET Extra Headers",
 		"Guid": "7d37b798c22748eebf92ffa281ba982a",
-		"Notes": "",
+		"Notes": "PHA+R0VUIHJlcXVlc3Qgd2l0aCBoZWFkZXJzLjwvcD4=",
 		"Category": ""
 	},
 	"Preset_777045dda27d466fab6c051d3e8094e8": {
@@ -45,10 +45,10 @@
 		"UseBasicAuth": true,
 		"AuthUsername": "3f0k+uBHWf2sPtwW4tYMUA==",
 		"AuthPassword": "C35R83xuSqKQ93OJME1BZA==",
-		"ResponseAutoFormat": false,
+		"ResponseAutoFormat": true,
 		"PresetName": "GET: Use Basic Auth Example",
 		"Guid": "777045dda27d466fab6c051d3e8094e8",
-		"Notes": "",
+		"Notes": "PHA+R0VUIHJlcXVlc3Qgd2l0aCBiYXNpYyBhdXRoZW50aWNhdGlvbi48L3A+",
 		"Category": ""
 	},
 	"Preset_a0745bab53eb4c78a6034f1a9d4559de": {
@@ -61,10 +61,10 @@
 		"UseBasicAuth": false,
 		"AuthUsername": "",
 		"AuthPassword": "",
-		"ResponseAutoFormat": false,
+		"ResponseAutoFormat": true,
 		"PresetName": "GET: Example URL Parameters",
 		"Guid": "a0745bab53eb4c78a6034f1a9d4559de",
-		"Notes": "",
+		"Notes": "PHA+R0VUIHJlcXVlc3Qgd2l0aCBVUkwgcGFyYW1ldGVycy48L3A+",
 		"Category": ""
 	},
 	"Preset_292047e733934bc48429c4d746cae53a": {
@@ -80,7 +80,7 @@
 		"ResponseAutoFormat": true,
 		"PresetName": "POST: Json Post Data",
 		"Guid": "292047e733934bc48429c4d746cae53a",
-		"Notes": "",
+		"Notes": "PHA+UE9TVCBKc29uIERhdGEuPC9wPg==",
 		"Category": ""
 	},
 	"Preset_c02b437c22474cf7b44a96c72f430f18": {
@@ -93,10 +93,10 @@
 		"UseBasicAuth": false,
 		"AuthUsername": "",
 		"AuthPassword": "",
-		"ResponseAutoFormat": false,
+		"ResponseAutoFormat": true,
 		"PresetName": "DELETE: Delete Data",
 		"Guid": "c02b437c22474cf7b44a96c72f430f18",
-		"Notes": "",
+		"Notes": "PHA+REVMRVRFIHJlcXVlc3QuPC9wPg==",
 		"Category": ""
 	},
 	"Preset_9609fe373b9b4865a2ea83a3dd35be30": {
@@ -109,10 +109,10 @@
 		"UseBasicAuth": false,
 		"AuthUsername": "",
 		"AuthPassword": "",
-		"ResponseAutoFormat": false,
+		"ResponseAutoFormat": true,
 		"PresetName": "PUT: Json Put Data",
 		"Guid": "9609fe373b9b4865a2ea83a3dd35be30",
-		"Notes": "",
+		"Notes": "PHA+UFVUIHJlcXVlc3QuPC9wPg==",
 		"Category": ""
 	},
 	"Preset_cbbcebba6f30425caec540f517cb3524": {
@@ -125,62 +125,14 @@
 		"UseBasicAuth": false,
 		"AuthUsername": "",
 		"AuthPassword": "",
-		"ResponseAutoFormat": false,
+		"ResponseAutoFormat": true,
 		"PresetName": "PATCH: Json Patch Data",
 		"Guid": "cbbcebba6f30425caec540f517cb3524",
-		"Notes": "",
+		"Notes": "PHA+UEFUQ0ggcmVxdWVzdC48L3A+",
 		"Category": ""
 	},
 	"Main": {
-		"GlobalVar": "fldType\tfldName\tfldValue\r\n",
-		"GridViewPresets": "Bhlmcm1NYWluLmN4R3JpZERCVGFibGVWaWV3BhJUY3hHcmlkREJUYWJsZVZpZXcCCQYJU291cmNlRFBJAgYCYAYGRm9vdGVyAgkGBUZhbHNlBgpHcm91cEJ5Qm94AgkGBFRydWUGDEdyb3VwRm9vdGVycwICBgEABgpOZXdJdGVtUm93AgkGBUZhbHNlBhhFZGl0Rm9ybVVzZURlZmF1bHRMYXlvdXQCCQYEVHJ1ZQYTUm93VXNlRGVmYXVsdExheW91dAIJBgRUcnVlBh9Db2x1bW5zUXVpY2tDdXN0b21pemF0aW9uU29ydGVkAgkGBUZhbHNlBgdWZXJzaW9uAgIGAQECAwYYY3hHcmlkREJUYWJsZVZpZXdmbGROYW1lBg9UY3hHcmlkREJDb2x1bW4CDAYJU291cmNlRFBJAgYCYAYRRmlsdGVyUm93T3BlcmF0b3ICAgYBAAYKR3JvdXBJbmRleAIGAsO/BhRJc0NoaWxkSW5NZXJnZWRHcm91cAIJBgVGYWxzZQYFV2lkdGgCBgJ4Bg1BbGlnbm1lbnRIb3J6AgIGAQAGBUluZGV4AgYCAAYHVmlzaWJsZQIJBgRUcnVlBglTb3J0T3JkZXICCQYGc29Ob25lBglTb3J0SW5kZXgCBgLDvwYYV2FzVmlzaWJsZUJlZm9yZUdyb3VwaW5nAgkGBUZhbHNlBgpFeHByZXNzaW9uAgkSAAAAAAIABhxjeEdyaWREQlRhYmxlVmlld2ZsZENhdGVnb3J5Bg9UY3hHcmlkREJDb2x1bW4CDAYJU291cmNlRFBJAgYCYAYRRmlsdGVyUm93T3BlcmF0b3ICAgYBAAYKR3JvdXBJbmRleAIGAsO/BhRJc0NoaWxkSW5NZXJnZWRHcm91cAIJBgVGYWxzZQYFV2lkdGgCBgJ4Bg1BbGlnbm1lbnRIb3J6AgIGAQAGBUluZGV4AgYCAQYHVmlzaWJsZQIJBgRUcnVlBglTb3J0T3JkZXICCQYGc29Ob25lBglTb3J0SW5kZXgCBgLDvwYYV2FzVmlzaWJsZUJlZm9yZUdyb3VwaW5nAgkGBUZhbHNlBgpFeHByZXNzaW9uAgkSAAAAAAIABh1Db25kaXRpb25hbEZvcm1hdHRpbmdQcm92aWRlcgYkVGN4R3JpZENvbmRpdGlvbmFsRm9ybWF0dGluZ1Byb3ZpZGVyAgEGBUNvdW50AgYCAAIA"
-	},
-	"Preset_f84d0bc1928042ff81d9471447391d3f": {
-		"BaseURL": "add",
-		"Method": 0,
-		"URLParams": "      3",
-		"PostData": "",
-		"ExtraHeaders": "",
-		"PostDataContentType": "application/json",
-		"ResponseAutoFormat": false,
-		"UseBasicAuth": false,
-		"AuthUsername": "",
-		"AuthPassword": "",
-		"PresetName": "add 3",
-		"Guid": "f84d0bc1928042ff81d9471447391d3f",
-		"Notes": "",
-		"Category": "add"
-	},
-	"Preset_53595bd343c44106b056e39ac93a06eb": {
-		"BaseURL": "add",
-		"Method": 0,
-		"URLParams": "       lkllk",
-		"PostData": "",
-		"ExtraHeaders": "",
-		"PostDataContentType": "application/json",
-		"ResponseAutoFormat": false,
-		"UseBasicAuth": false,
-		"AuthUsername": "",
-		"AuthPassword": "",
-		"PresetName": "Copy of add",
-		"Guid": "53595bd343c44106b056e39ac93a06eb",
-		"Notes": "PGJvZHk+PHA+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiAnQXJpYWwnIj5TYWxpIGR6dTwvc3Bhbj48YnIvPkhvaTwvcD48cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6ICdBcmlhbCciPmhvaTwvc3Bhbj48L3A+PHA+U2Fsw7zDvDwvcD48cD5Kb29vPC9wPjwvYm9keT4=",
-		"Category": "add"
-	},
-	"Preset_1e43d67905584d9bad0b965b312a9291": {
-		"BaseURL": "",
-		"Method": 0,
-		"URLParams": "",
-		"PostData": "",
-		"ExtraHeaders": "",
-		"PostDataContentType": "application/json",
-		"ResponseAutoFormat": false,
-		"UseBasicAuth": false,
-		"AuthUsername": "",
-		"AuthPassword": "",
-		"PresetName": "7",
-		"Guid": "1e43d67905584d9bad0b965b312a9291",
-		"Notes": "PGJvZHk+PHA+SG9pIGR1IHdpZSBnZWl0cz88L3A+PHA+RGFua2UgZ3VldDwvcD48L2JvZHk+",
-		"Category": "7"
+		"GlobalVar": "fldType\tfldXPath\tfldName\tfldValue\r\nStatic\t\t%CustomPostData%\tData 1\r\nStatic\t\t%BaseURL%\thttps://httpbin.org\r\n",
+		"GridViewPresets": "Bhlmcm1NYWluLmN4R3JpZERCVGFibGVWaWV3BhJUY3hHcmlkREJUYWJsZVZpZXcCCQYJU291cmNlRFBJAgYCYAYGRm9vdGVyAgkGBUZhbHNlBgpHcm91cEJ5Qm94AgkGBFRydWUGDEdyb3VwRm9vdGVycwICBgEABgpOZXdJdGVtUm93AgkGBUZhbHNlBhhFZGl0Rm9ybVVzZURlZmF1bHRMYXlvdXQCCQYEVHJ1ZQYTUm93VXNlRGVmYXVsdExheW91dAIJBgRUcnVlBh9Db2x1bW5zUXVpY2tDdXN0b21pemF0aW9uU29ydGVkAgkGBUZhbHNlBgdWZXJzaW9uAgIGAQECAwYYY3hHcmlkREJUYWJsZVZpZXdmbGROYW1lBg9UY3hHcmlkREJDb2x1bW4CDAYJU291cmNlRFBJAgYCYAYRRmlsdGVyUm93T3BlcmF0b3ICAgYBAAYKR3JvdXBJbmRleAIGAsO/BhRJc0NoaWxkSW5NZXJnZWRHcm91cAIJBgVGYWxzZQYFV2lkdGgCBgPFvgAGDUFsaWdubWVudEhvcnoCAgYBAAYFSW5kZXgCBgIABgdWaXNpYmxlAgkGBFRydWUGCVNvcnRPcmRlcgIJBgZzb05vbmUGCVNvcnRJbmRleAIGAsO/BhhXYXNWaXNpYmxlQmVmb3JlR3JvdXBpbmcCCQYFRmFsc2UGCkV4cHJlc3Npb24CCRIAAAAAAgAGHGN4R3JpZERCVGFibGVWaWV3ZmxkQ2F0ZWdvcnkGD1RjeEdyaWREQkNvbHVtbgIMBglTb3VyY2VEUEkCBgJgBhFGaWx0ZXJSb3dPcGVyYXRvcgICBgEABgpHcm91cEluZGV4AgYCw78GFElzQ2hpbGRJbk1lcmdlZEdyb3VwAgkGBUZhbHNlBgVXaWR0aAIGAlMGDUFsaWdubWVudEhvcnoCAgYBAAYFSW5kZXgCBgIBBgdWaXNpYmxlAgkGBFRydWUGCVNvcnRPcmRlcgIJBgZzb05vbmUGCVNvcnRJbmRleAIGAsO/BhhXYXNWaXNpYmxlQmVmb3JlR3JvdXBpbmcCCQYFRmFsc2UGCkV4cHJlc3Npb24CCRIAAAAAAgAGHUNvbmRpdGlvbmFsRm9ybWF0dGluZ1Byb3ZpZGVyBiRUY3hHcmlkQ29uZGl0aW9uYWxGb3JtYXR0aW5nUHJvdmlkZXICAQYFQ291bnQCBgIAAgA="
 	}
 }

BIN
RESTDebugger.exe


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 3 - 3
prj/RESTDebugger.dproj


BIN
prj/RESTDebugger.res


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 547 - 485
src/_frmMain.dfm


+ 50 - 46
src/_frmMain.pas

@@ -46,43 +46,14 @@ type
     dxBarButton7: TdxBarButton;
     dxBarSubItem2: TdxBarSubItem;
     tbbtnRun: TdxBarButton;
-    Label2: TLabel;
-    edtFullURL: TcxTextEdit;
-    btnRun: TcxButton;
     PageControlResponse: TcxPageControl;
     tabContent: TcxTabSheet;
     tabHeaders: TcxTabSheet;
     pnlHeader: TPanel;
     dxBarSubItem4: TdxBarSubItem;
     tbbtnStayOnTop: TdxBarButton;
-    edtBaseURL: TcxTextEdit;
-    Label3: TLabel;
-    btnAdd: TcxButton;
     cxImageList: TcxImageList;
-    btnDelete: TcxButton;
-    Label4: TLabel;
-    btnEdit: TcxButton;
-    btnCopyPreset: TcxButton;
-    Label5: TLabel;
-    Label6: TLabel;
-    comboMethod: TcxComboBox;
-    PageControlParams: TcxPageControl;
-    tabURLParams: TcxTabSheet;
-    cxTabSheet2: TcxTabSheet;
-    Panel3: TPanel;
-    Panel4: TPanel;
-    Label7: TLabel;
-    tabPostData: TcxTabSheet;
     tbbtnAutoOpenLastUsed: TdxBarButton;
-    Label8: TLabel;
-    Panel5: TPanel;
-    comboPostContentType: TcxComboBox;
-    cxTabSheet3: TcxTabSheet;
-    chkUseBasicAuth: TcxCheckBox;
-    Label9: TLabel;
-    edtAuthUsername: TcxTextEdit;
-    edtAuthPassword: TcxTextEdit;
-    Label10: TLabel;
     dxBarButton2: TdxBarButton;
     tbbtnAutoSaveProject: TdxBarButton;
     PopupEditor: TdxBarPopupMenu;
@@ -94,20 +65,15 @@ type
     pmnuRedoJsonContent: TdxBarButton;
     pmnuSelectAll: TdxBarButton;
     pmnuCompactJson: TdxBarButton;
-    btnCopyFullURL: TcxButton;
     dxBarDockControl1: TdxBarDockControl;
     SynIniSyn: TSynIniSyn;
     SynJSONSyn: TSynJSONSyn;
     EditorContent: TSynEdit;
     EditorResponseHeaders: TSynEdit;
-    EditorURLParams: TSynEdit;
-    EditorExtraHeaders: TSynEdit;
-    EditorPostData: TSynEdit;
     SynXMLSyn: TSynXMLSyn;
     pmnuFormatXML: TdxBarButton;
     pmnuCompactXML: TdxBarButton;
     pmnuBiggerEditor: TdxBarButton;
-    btnPasteFullURL: TcxButton;
     SynHTMLSyn: TSynHTMLSyn;
     SynEditSearch: TSynEditSearch;
     SynEditRegexSearch: TSynEditRegexSearch;
@@ -129,21 +95,59 @@ type
     memDataVariablesfldValue: TStringField;
     dsVariables: TDataSource;
     memDataVariablesfldType: TStringField;
-    cxGridDBTableView: TcxGridDBTableView;
-    cxGridLevel1: TcxGridLevel;
-    cxGrid: TcxGrid;
     memDataPresets: TdxMemData;
     dsPresets: TDataSource;
     memDataPresetsfldName: TStringField;
     memDataPresetsfldCategory: TStringField;
-    cxGridDBTableViewfldName: TcxGridDBColumn;
-    cxGridDBTableViewfldCategory: TcxGridDBColumn;
     memDataPresetsfldGuid: TStringField;
     cxStyleRepository1: TcxStyleRepository;
+    pnlPresetDetail: TPanel;
+    cxSplitter2: TcxSplitter;
+    Label6: TLabel;
+    comboMethod: TcxComboBox;
+    edtBaseURL: TcxTextEdit;
+    Label3: TLabel;
+    PageControlParams: TcxPageControl;
+    tabURLParams: TcxTabSheet;
+    Panel3: TPanel;
+    Label5: TLabel;
+    EditorURLParams: TSynEdit;
+    cxTabSheet2: TcxTabSheet;
+    Panel4: TPanel;
+    Label7: TLabel;
+    EditorExtraHeaders: TSynEdit;
+    cxTabSheet3: TcxTabSheet;
+    Label9: TLabel;
+    Label10: TLabel;
+    chkUseBasicAuth: TcxCheckBox;
+    edtAuthUsername: TcxTextEdit;
+    edtAuthPassword: TcxTextEdit;
+    tabPostData: TcxTabSheet;
+    Panel5: TPanel;
+    Label8: TLabel;
+    comboPostContentType: TcxComboBox;
+    EditorPostData: TSynEdit;
     tabNotes: TcxTabSheet;
     Panel6: TPanel;
     Label11: TLabel;
     HtmlEditor: THtmlEditor;
+    Label4: TLabel;
+    edtFullURL: TcxTextEdit;
+    btnPasteFullURL: TcxButton;
+    btnCopyFullURL: TcxButton;
+    btnRun: TcxButton;
+    pnlPresets: TPanel;
+    cxGrid: TcxGrid;
+    cxGridDBTableView: TcxGridDBTableView;
+    cxGridDBTableViewfldName: TcxGridDBColumn;
+    cxGridDBTableViewfldCategory: TcxGridDBColumn;
+    cxGridLevel1: TcxGridLevel;
+    Label2: TLabel;
+    btnAdd: TcxButton;
+    btnEdit: TcxButton;
+    btnCopyPreset: TcxButton;
+    btnDelete: TcxButton;
+    memDataVariablesfldXPath: TStringField;
     procedure FormShow(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
@@ -271,8 +275,7 @@ implementation
 {$R *.dfm}
 
 uses System.NetEncoding, System.UITypes, _EncryptStr, JsonDataObjects, IdGlobal, System.IOUtils, uRwXmlDOM,
-  _frmBiggerEditor, IdUri, _frmSearch, ShellApi, _frmVariables, RegularExpressions,
-  _frmAddEditPreset;
+  _frmBiggerEditor, IdUri, _frmSearch, ShellApi, _frmVariables, _frmAddEditPreset;
 
 procedure TfrmMain.tbbtnRunClick(Sender: TObject);
 begin
@@ -976,6 +979,7 @@ begin
   MainConfig.WriteInteger('MainWindowPos', 'Height', Height);
   MainConfig.WriteBool('MainWindowPos', 'StayOnTop', FormStyle = fsStayOnTop);
   MainConfig.WriteInteger('MainWindowPos', 'HeaderHeight', pnlHeader.Height);
+  MainConfig.WriteInteger('MainWindowPos', 'PresetPanelWidth', pnlPresets.Width);
 
   MainConfig.WriteBool('Search', 'gbSearchBackwards', gbSearchBackwards);
   MainConfig.WriteBool('Search', 'gbSearchCaseSensitive', gbSearchCaseSensitive);
@@ -1123,6 +1127,7 @@ begin
   end;
 
   pnlHeader.Height := MainConfig.ReadInteger('MainWindowPos', 'HeaderHeight', 370);
+  pnlPresets.Width := MainConfig.ReadInteger('MainWindowPos', 'PresetPanelWidth', 253);
 
   tbbtnAutoOpenLastUsed.Down := MainConfig.ReadBool('Project', 'AutoOpenLastUsed', True);
   tbbtnAutoSaveProject.Down := MainConfig.ReadBool('Project', 'AutoSaveProject', True);
@@ -1220,7 +1225,7 @@ begin
     EditorExtraHeaders.Lines.Text := FProjectConfig.ReadString(preset, 'ExtraHeaders');
     EditorPostData.Lines.Text := FProjectConfig.ReadString(preset, 'PostData');
     comboPostContentType.Text := FProjectConfig.ReadString(preset, 'PostDataContentType', 'application/json');
-    chkResponseAutoformat.Checked := FProjectConfig.ReadBool(preset, 'ResponseAutoFormat', false);
+    chkResponseAutoformat.Checked := FProjectConfig.ReadBool(preset, 'ResponseAutoFormat', true);
 
     HtmlEditor.HTML.Text := Decode(FProjectConfig.ReadString(preset, 'Notes', ''));
 
@@ -1493,10 +1498,9 @@ begin
 end;
 
 function TfrmMain.ReplaceGlobalVar(const AText: string): string;
-var
-  match: string;
 begin
   Result := AText;
+
   memDataVariables.First;
   while not memDataVariables.Eof do
   begin
@@ -1508,9 +1512,9 @@ begin
       SaveProject;
     end;
 
-    if memDataVariablesfldType.Value = 'RegEx' then
+    if memDataVariablesfldType.Value = 'XPath' then
     begin
-      match := TRegEx.Match(AText, memDataVariablesfldName.Value, [roMultiLine]).Value;
+      //match := TRegEx.Match(AText, memDataVariablesfldName.Value, [roMultiLine]).Value;
     end
     else
     begin

+ 8 - 3
src/_frmVariables.dfm

@@ -86,20 +86,25 @@ object frmVariables: TfrmVariables
         Properties.DropDownListStyle = lsFixedList
         Properties.Items.Strings = (
           'Static'
-          'RegEx')
+          'XPath')
         Width = 83
       end
+      object cxGrid1DBTableView1fldXPath: TcxGridDBColumn
+        Caption = 'XPath'
+        DataBinding.FieldName = 'fldXPath'
+        Width = 200
+      end
       object cxGrid1DBTableView1fldName: TcxGridDBColumn
         Caption = 'Name'
         DataBinding.FieldName = 'fldName'
         SortIndex = 0
         SortOrder = soAscending
-        Width = 208
+        Width = 150
       end
       object cxGrid1DBTableView1fldValue: TcxGridDBColumn
         Caption = 'Value'
         DataBinding.FieldName = 'fldValue'
-        Width = 350
+        Width = 210
       end
     end
     object cxGrid1Level1: TcxGridLevel

+ 1 - 0
src/_frmVariables.pas

@@ -23,6 +23,7 @@ type
     cxGrid1DBTableView1fldName: TcxGridDBColumn;
     cxGrid1DBTableView1fldValue: TcxGridDBColumn;
     cxGrid1DBTableView1fldType: TcxGridDBColumn;
+    cxGrid1DBTableView1fldXPath: TcxGridDBColumn;
     procedure cxButton1Click(Sender: TObject);
   private
     { Private-Deklarationen }

Vissa filer visades inte eftersom för många filer har ändrats