This is a REST API application for wrapping the SystemPerformance (pka pButtons) utility, built with ObjectScript in InterSystems IRIS. It also has OPEN API spec, can be developed with Docker and VSCode, can ve deployed as ZPM module.
Make sure you have git and Docker desktop installed.
zpm:USER>install sys-perf-restapi
Clone/git pull the repo into any local directory.
This template creates /pbuttons REST web-application on IRIS which implements api calls to the SystemPerformance (pka pButtons) utility.
A simple partial UI is also provided as a sample of what can be done using the REST API.
You can browse to the UI with the following link: http://:/pButtonsUI/index.csp
For example: http://localhost:52773/pButtonsUI/index.csp
If using Dockerfile, the container will also be setup with the relevant UnitTest folder and global pointing to it.
zn "%sys"
do ##class(zpButtons.Test.BasicAPITest).RunBasicTests()
do ##class(zpButtons.Test.BasicAPITest).RunRESTTests()
[Note running the "Basic" Tests will require user intervention (approving changing a folder location)]
This repository is ready to code, change and expand in VSCode with ObjectScript plugin. Install VSCode and ObjectScript plugin and open the folder in VSCode.
The script in Installer.cls will import everything you place under /src/cls into IRIS.
See this post for more info (screenshots) and discussion.
The simplest dockerfile to start IRIS and load ObjectScript from /src/cls folder Use the related docker-compose.yml to easily setup additional parametes like port number and where you map keys and host folders.
Dockerfile-zpm builds for you a container which contains ZPM package manager client so you are able to install packages from ZPM in this container
Settings file to let you immedietly code in VSCode with VSCode ObjectScript plugin)
Config file if you want to debug with VSCode ObjectScript
The basic API wrapping the ^SystemPerformance routine
A json Swagger spec of the REST API
The implementation calling into the Basic.api methods
BasicAPITest and RestAPITest - UnitTest classes for testing various scenarios (creating profiles, running, etc.)
An include macro definition to support differences between CACHE/Ensemble and InterSystems IRIS.
The swagger json file (for editing with relevant plug-in, found easier than the spec class directly)
A folder with the web app related code.