/Slumber

App for testing HTTP/HTTPS calls

Primary LanguagePascalMIT LicenseMIT

Slumber

Description

App for testing HTTP calls, particularly REST.

As an FMX project, the intended targets are Windows and macOS.

Shamelessly borrows ideas from Insomnia

NOTE: As this is work in progress, there may be substantial refactoring as the project progresses

Contributors

  • Dave Nottage (DPN)

If you wish to join, please post in the discussions section or in the Delphi Worlds Slack workspace. If you need to register, please visit this self-invite link

Dependencies

Note: For Windows builds (Win32 or Win64), you will need to ensure that sk4d.dll is in the Windows library path. The dll for the respective platform is under the Lib folder.

Configuration

Project search paths

The Slumber project options uses a search path based on environment variable user overrides, which appear as: $(Variable) where Variable is the name of the relevant variable in the User Overrides section of the IDE options (Tools|Options, IDE > Environment Variables). Each of the following variables are used:

  • Kastri - needs to point to an instance of the Kastri repo
  • Skia - needs to point to the Source folder of Skia

Styles

Style files are copyrighted, so they cannot be distributed with this source

As per the Styles\Styles.Default.rc and Styles\Styles.macOS.rc files, if you wish to use a style, you will need to create a .style file, usually from a .vsf file that you can install using the GetIt package manager of Delphi, and replace the filename for the resource named StyleBook in the .rc file (e.g. UbuntuClearFantasy.Default.style) with the filename of your exported .style file. If you wish to use styles for both Windows and macOS, remember to export a .style file for each platform.

You will also need to create or update the .json file for the resource named Style. The .json file contains style information related to the style being used. Presently the only value is ButtonColor, which relates to the color of the buttons used in Slumber, e.g.:

{
  "ButtonColor" : "$FFE4643C"
}

The color value should be a value that matches the style being used.

Near term goals

  • Very basic implementation of sending HTTP requests and presenting the response

Longer term goals

  • Implement collections like Postman and Insomnia etc

Status

26-Jun-2023

  • Removed dependency on SVGIconImageList, however the image loading is now based on Skia v6.0.0
  • Pressing enter in the URL edit now sends the request
  • Added Headers to the response area

The switch to using Skia (and no Img32 code from SVGIconImageList) means that the Windows version is now dependent on the Skia DLLs (Win32 or Win64). These are in the Lib folder.

24-Jun-2023

  • Changed header kind combo to allow custom headers
  • Added Skia search paths for macOS

NOTE: I am currently unable to make the images appear on macOS This has been fixed in the 26-Jun-2023 changes

19-Mar-2023

  • Added "instant" saving of changes using Ctrl-S
  • Added "auto-select" of first request found when loading a profile
  • Fixed a bunch of issues

04-Mar-2023

  • Now supports loading/saving of "profiles" (in JSON format). May not be 100% complete
  • Fixed a bunch of issues

01-Mar-2023

  • Work in progress update
  • Added support for using SVGs as button images
  • Profile, Folder and Request classes have been created

Known issues:

  • The buttons do not show on macOS as yet
  • A bunch of stuff is yet to be implemented

02-Feb-2023

  • Initial check-in of work in progress